对于想了解Javascript拼图–一个班轮的读者,本文将提供新的信息,我们将详细介绍javascript拼图游戏,并且为您提供关于HighPerformanceJavaScript(高性能JavaS
对于想了解Javascript拼图 – 一个班轮的读者,本文将提供新的信息,我们将详细介绍javascript拼图游戏,并且为您提供关于High Performance JavaScript(高性能JavaScript)读书笔记分析_javascript技巧、JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)_javascript技巧、javascript for java 一个可以让用户通过JAVA调用JAVASCRIPT的JAVA包、Javascript HTML5 Canvas实现的一个画板_javascript技巧的有价值信息。
本文目录一览:- Javascript拼图 – 一个班轮(javascript拼图游戏)
- High Performance JavaScript(高性能JavaScript)读书笔记分析_javascript技巧
- JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)_javascript技巧
- javascript for java 一个可以让用户通过JAVA调用JAVASCRIPT的JAVA包
- Javascript HTML5 Canvas实现的一个画板_javascript技巧
Javascript拼图 – 一个班轮(javascript拼图游戏)
明显的解决方案:
f.moo(alert(f.foo));
但是抛出TypeError:回调是未定义的{message =“回调未定义”,更多…}
var f = (function(){ return { foo : "bar",moo : function(callback){ callback.call(this) } } })(); //alert "bar" by foo
解决方法
f.moo(function() { alert(this.foo); });
High Performance JavaScript(高性能JavaScript)读书笔记分析_javascript技巧
第一章:加载和执行浏览器的JavaScript的引擎是编译器层的优化;
当浏览器执行JavaScript代码时,不能同时做其他任何事情(单一进程),意味着<script>标签每次出现都霸道地让页面等带脚本的解析和执行(每个文件必须等到前一个文件下载并执行完成才会开始下载),所以头部的JS和CSS用来渲染页面,交互行为(几乎所有)的JS放在<body>底部; <BR>主流浏览器都允许并行下载JS。 <BR>减少外链脚本数量将会改善性能(合并JS) <BR>任何网站都可以使用一个把制定文件合并处理后的URL来获取任意数量的文件。 <BR>defer属性可延迟脚本(只有IE4 和FF3.5 支持) <BR><STRONG>第二章:数据访问 <br><br>JavaScript中有四种基本的数据存取位置: 直接量,变量,数组元素(以数字作为索引),对象成员(以字符床作为索引)。 <BR>访问直接量和局部变量的速度最快,相反,访问数组元素和对象成员相对较慢。 <BR>属性或方法在原型链中的位置越深,访问它的速度也越慢。 <BR>通常来说,可以通过吧常用的对象,数组元素,跨越变量保存在局部变量中来改善JavaScript性能。 <BR><STRONG>第三章:DOM编程 <br><br>DOM操作在webkit内核的浏览器速度快,其他的浏览器innerHTML执行快。 <BR>访问和操作DOM是现代WEB应用的重要部分。但每次穿越链接ECMAScript和DOM两个岛屿之间的桥梁都会被收取‘过桥费''. <BR>要留意重回和重排。 <BR>在IE中:hover会降低响应速度。 <BR><STRONG>第四章:算法和流程控制 <BR><BR>避免使用for-in循环,除非需要遍历一个属性数量位置的对象。 <BR>了解栈溢出错误。 <BR><STRONG>第五章:字符串和正则表达式 <br><br>回溯既是正则表达式匹配功能的基本组成部分,也是正则表达式的低效之源。 <BR><STRONG>第六章:快速响应的用户界面 <br><br>任何JavaScript任务都不应当执行超过100毫秒。 <BR>Web workers是新版浏览器支持的特性。 <BR>没有什么JavaScript代码会重要到可以影响用户体验的程度. <BR><STRONG>第七章:Ajax <br><br>JSON是轻量级的数据格式,解析速度快。 <BR>减少请求数,可通过合并JS和CSS,还有IMG。 <BR>缩短页面加载时间,页面主要内容加载完成后,用Ajax获取那些次要的文件。 <BR><STRONG>第八章:编程实践 <br><br>大多数的时候,没必要使用eval()和Function(),因此最好避免使用它们。至于setTimeout()和setInterval(),建议传入函数而不是字符串来作为第一个参数。 <BR>在JavaScript中创建对象和数组的方法有多种,但使用对象和数组直接量是最快的方式(对象属性和数组项越多,使用直接量的好处就越明显)。 <BR>不要重复工作:延迟加载;条件预加载. <BR>多使用原生方法,因为更快。 <BR><STRONG>第九章:构建并部署高性能JavaScript应用 <br><br>PV(page view)即页面浏览量或点击量。 <BR>减少页面渲染所需的HTTP请求数,特别是针对那些首次访问网站的用户。 <BR>JavaScript压缩。 <BR>JavaScript缓存。 <BR>使用内容分发网络(CDN) <BR>第十章主要介绍工具:如firebug,YSlow,和一些性能分析. </script>
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)_javascript技巧
1、防止滥用JavaScript“不管你想通过JavaScript改变哪个网页的行为,都必须三思而后行。首先要确认:为这个网页增加这种额外的行为是否确有必要?”
个人认为,作者的这句话放在当前几乎无处不用JavaScript来增强Web页面交互体验的时代,可以理解为应该适当的使用JavaScript,而不要因为使用了实现酷炫效果的脚本导致网页加载缓慢或者兼容性极差而舍本求末,导致用户无法浏览和使用网站。
2、平稳退化平稳退化是指当用户禁用浏览器JavaScript或浏览器不支持JavaScript(还有吗)时,应该让用户仍然可以正常的浏览网站。
刚看到这个问题的时候,感觉这种情况几乎可以忽略不计,因此看了一些关于这个问题的讨论(知乎)以及博文《javascript不可用的问题探究》,并拿博客园首页做了实验,即在禁用JavaScript的情况下浏览网页,发现虽然无法评论博客、无法正常显示分类效果、当然广告也没了,但是主要的功能(查看博文、分页跳转等)是可以正常使用的。
那么基本可以得出结论:在考虑平稳退化的时候,根据需要至少应该保证网站主要功能可以正常使用。对博客园来说,就是查看博客。
3、禁用"javascript:"伪协议和内嵌事件处理函数虽然在HTML中使用这两种写法,不会带来什么严重问题,但是它会阻止平稳退化(网页行为不一致),并且使脚本的编写方式混乱,增加了代码维护的难度。
4、性能考虑关于性能考虑的最佳实践,还是非常容易理解的。
“尽量少访问DOM和尽量减少标记”。少访问DOM是因为查询DOM的操作会非常耗费性能。多处函数的重复DOM查询应该进行重构,提取为全局变量或者直接作为参数进行传递。减少标记可以减小DOM的规模,从而减少查找DOM树中特定元素的时间。
“合并脚本”。合并外部脚本文件,可以减少加载页面时发送的请求次数。通过观察Chrome开发者工具Network标签,可以非常清楚的看到加载网页的请求次数和时间,下图为请求我的博客的情况,第三方的百度分享插件是最慢被加载的,当然整体加载时间还是可以接受的。不过当引用的文件过多过大,或者依赖的第三方插件请求缓慢时,整个页面就会一直处于加载状态,给人的感觉就是网页加载缓慢,体验就会变差。
另外,“脚本在标记中的位置对页面的初次加载时间也有很大的影响”。就像bootstrap的实例中,引用的JS插件统统放在了页面的尾部,并加了说明。
因为根据HTTP规范,浏览器每次从同一个域名中最多只能同时下载两个文件,而在脚本下载期间,浏览器不会下载其它任何文件,即使是来自不同域名的文件也不会下载,所有其它的资源都要等脚本加载完毕后才会下载;而通常我们会把脚本文件放在块中,此时该块中的脚本会导致浏览器无法并行加载其它文件(如图片或其它脚本)。
把所有 <script> 标签放在文档的末尾,</script>
javascript for java 一个可以让用户通过JAVA调用JAVASCRIPT的JAVA包
今天在看这篇文章《JavaScript:世界上误解最深的语言 》的时候,其中说到,最好的一本Javascript书是《Javascript The Definitive Guide,5th Edition.chm 》,于是就把该书下载下来,下载地址是:http://dl1.csdn.net/down3/20070303/03131557424.chm,看到中间的第二章提到一个“javascript for java”,是一个可以通过JAVA操作JAVASCRIPT的开源JAVA包,下载地址:ftp://ftp.mozilla.org/pub/mozilla.org/js/rhino1_6R6.zip,主页为:http://www.mozilla.org/rhino/,全部是全JAVA写的,主要是给用户提供可以在JAVA中调用JAVASCRIPT。
个人认为,这个还可以,特别是对于源代码的保存更提供了帮助,因为JAVASCRIPT现在是写在JAVA程序里面,JAVA程序在发布的时候都会经过编译,用户如果不通过特别的工具是看不到源代码,而JAVASCRIPT不是,会全部加载到浏览器里面。不过,这是一个好处,也是一个坏处,如果你有一个很好的设计技巧,而我又需要,且我的使用不会给你的权益带来伤害,那么我就只能够望而远之了,因为我看不到你的源代码。JAVASCRIPT是使交互式操作更加方便的辅助性工具,虽然JAVA的功能很强大,但是有些功能JAVA不好实现,或者是实现起来不那么方面的,但是源代码又需要保护的,这时就可以这个工具。
不过,用这个也会带来一个麻烦,就是又要去熟悉一些东西,这又要花费我们一些时间,毕竟时间是有限的,我们不可能在有限的生命里把无限的知识学尽,选择性是最好的,除非特非必要,没有必要把简单在页面里面就可以实现的JAVASCRIPT,放到JAVA里面去,毕竟还是简单一点好。
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
Javascript HTML5 Canvas实现的一个画板_javascript技巧
本文实例为大家分享了html5 canvas实现的一个画板代码,供大家参考,具体内容如下
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>DEMO6:自定义画板</title> </head> <body> <canvas id="canvas" width="600" height="300"> 浏览器不支持canvas <!-- 如果不支持会显示这段文字 --> </canvas> <br/> <buttononclick=''linecolor="yellow";''>YELLOW</button> <buttononclick=''linecolor="red";''>RED</button> <buttononclick=''linecolor="blue";''>BLUE</button> <buttononclick=''linecolor="green";''>GREEN</button> <buttononclick=''linecolor="white";''>WHITE</button> <buttononclick=''linecolor="black";''>BLACK</button> <br/> <buttononclick="linw=4;">4PX</button> <buttononclick="linw=8;">8PX</button> <buttononclick="linw=16;">16PX</button> <br/> <buttononclick="copyimage();">EXPORT</button> <br/> <img src="" id="image_png"height="300px" alt="Javascript HTML5 Canvas实现的一个画板_javascript技巧" > <br/> <script type="text/javascript"> var canvas = document.getElementById(''canvas''); //获取标签 var ctx = canvas.getContext("2d"); var fill; ctx.fillRect(0,0,600,300); var onoff = false; //按下标记 var oldx = -10; var oldy = -10; //设置颜色 var linecolor = "white"; var linw = 4; canvas.addEventListener("mousemove",draw,true); //鼠标移动事件 canvas.addEventListener("mousedown",down,false); //鼠标按下事件 canvas.addEventListener("mouseup",up,false); //鼠标弹起事件 function down(event){ onoff = true; oldx = event.pageX - 10; oldy = event.pageY - 10; } function up(){ onoff = false; } function draw(event){ if (onoff==true) { var newx = event.pageX - 10; var newy = event.pageY - 10 ctx.beginPath(); ctx.moveTo(oldx,oldy); ctx.lineTo(newx,newy); ctx.strokeStyle = linecolor; ctx.lineWidth = linw; ctx.lineCap = "round"; ctx.stroke(); oldx = newx; oldy = newy; } } function copyimage(event) { var img_png_src = canvas.toDataURL("image/png"); //将画板保存为图片格式的函数 document.getElementById("image_png").src = img_png_src; } </script> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助。
关于Javascript拼图 – 一个班轮和javascript拼图游戏的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于High Performance JavaScript(高性能JavaScript)读书笔记分析_javascript技巧、JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)_javascript技巧、javascript for java 一个可以让用户通过JAVA调用JAVASCRIPT的JAVA包、Javascript HTML5 Canvas实现的一个画板_javascript技巧等相关内容,可以在本站寻找。
本文标签: