这道dom编程艺术第三版作业怎么做?:

JavaScript DOM编程艺术第一版(中文)
资料价格:免费
文件类型: (pdf)[下载阅读器]
文件大小:23.8 MB
上传时间:
标&&&&&&&签: &
JavaScript. DOM编程艺术第一版(中文)
您可能需要的
[] [] [] [] [] [] [] []
找资料直通车
提交您的需求,我们尽力为您提供
网友分享心得当前访客身份:游客 [
为梦想而奋斗!!!
:就只有你写“GMT-8”……
:好文章 入门必备
:http://my.oschina.net/fengxh/blog/413360 推荐...
:引用来自“郏高阳”的评论 引用来自“杨旭”的评...
:引用来自“杨旭”的评论 HashSet不允许有重复的元...
:HashSet不允许有重复的元素
:写得很清晰,赞!
:新书推荐:《Hadoop技术内幕:深入解析MapReduce...
今日访问:11
昨日访问:12
本周访问:31
本月访问:223
所有访问:7502
JavaScript DOM编程艺术(读后感一)
发表于2年前( 16:36)&&
阅读(75)&|&评论()
0人收藏此文章,
平稳退化,向后兼容,尽量少访问DOM尽量减少标记,合并和放置脚本,压缩脚本
1.平稳退化
&&& 网站访问者完全有可能使用的是不支持javascript的浏览器,或者是用户已经禁用。如果没有考虑这种情况,人们在访问网站时就有可能遇到麻烦,并因此不再来访问网站。如果正确的使用了javascript脚本,就可以让访问者在他们的浏览器不支持javascript的情况下仍能顺利地浏览网站。这就是所谓的平稳退化。虽然某些功能无法使用,但最基本的操作仍能顺利完成。
&a href="javascript:window.open("");" &&/a&这条语句在支持“javascript:”伪协议的浏览器中运行正常,较老的浏览器则会去尝试打开那个链接但失败,支持这种伪协议但禁用了javascript功能的浏览器会什么也不做。总之,在HTML文档里通过"javascript:"伪协议调用的javascript代码的做法非常不好。
&a href="#" onclick="window.open("");return false"&&/a&因为在上面这条HTML指令使用了return false语句,这个链接不会真的被打开。“#”符号是一个仅供文档内部使用的链接记号。在某些浏览器里,“#”链接指向当前文档的开头。把href属性的值设置为“#”只是为了创建一个空链接/ 。实际工作全部由onclick属性负责完成。这个技巧与"javascript:"伪协议代码一样糟糕,也不能平稳退化。用户禁用了浏览器的javascript功能,这样的链接将毫无用处。
各大搜索引擎都有类似(搜索机器人)的程序,目前,只有极少数搜索机器人能够理解javascript代码。所以,如果你的javascript网页不能平稳退化,它们在搜索上的排名就可能大受损害。
&a href="" onclick="window.open("");return false"&&/a&-----平稳退化
2.向后兼容
&&&可以通过对像检测的方法,使浏览器不执行此方法或者属性。
if (!documnet.getElementById)
3.性能考虑
1)&尽量少访问DOM尽量减少标记
&&&& 访问DOM的方式对脚本性能会产生非常大的影响。以下代码为例:
if (document.getElementByTagName("a").length & 0){ var links = document.getElementByTagName("a"); for (var i=0;i&links.i++){ //对每个链接作点处理 }}搞清楚这段代码要干什么,自然就会明白问题在哪里了。首先,它取得了所有&a&元素,然后检查它们的个数是不是大于0if (document.getElementByTagName("a").length & 0)然后,如果大于0,它会再次取得所有&a&元素,循环遍历这些元素并应用某些操作。var links = document.getElementByTagName("a"); for (var i=0;i&links.i++){虽然这段代码可以运行,但它不能保持最优的性能。不管什么时候,只要是查询DOM中的某些元素,浏览器都会搜索整个DOM树,从中查找可能匹配的元素。这段代码居然使用了两次getElementByTagName方法去执行相同的操作,浪费了一次搜索。更好的办法是把第一次搜索的结果保存在一个变量中,然后在循环里重用该结果,比如:&pre name="code" class="javascript"&&pre name="code" class="javascript"&&pre name="code" class="javascript"&var links = document.getElementByTagName("a");if (links .length & 0){ for (var i=0;i&links.i++){ //对每个链接作点处理 }}
&&& 在多个函数都会取得一组类似元素的情况下,可以考虑重构代码,把搜索结果保存在一个全局变量里,或者把一组元素直接以参数的形式传递给函数。另一个需要注意的地方,就是要尽量减少文档中的标记数量。过多不必要的元素只会增加DOM树的规模,进而增加遍历DOM树以查找特定元素的时间。
2)合并和放置脚本
&&& 把多个外部JS文件合并成一个脚本文件。这样,就可以减少加载页面时发送请求数量。而减少请求数量通常都是在性能优化时首先要考虑的。
&&& 脚本在标记中的位置对页面的初次加载时间有很大影响。传统上,我们都把脚本放在文档的&head&区域,这种放置方法有一个问题。位于&head&块中的脚本会导致浏览器无法并行加载其他文件(如图像或其他脚本)。一般来说,根据HTTP规范,浏览器每次从同一个域名中最多只能同时下载两个文件。而下载脚本期间,浏览器不会下载其他任何文件,即使是来自不同域名的文件也不会下载,所有其他资源都要等加载完毕后才能下载。所以把&script&标签都放到文档的末尾,&/body&之前,就可以让页面变得更快。
3)压缩脚本
更多开发者职位上
1)">1)">1" ng-class="{current:{{currentPage==page}}}" ng-repeat="page in pages"><li class='page' ng-if="(endIndex<li class='page next' ng-if="(currentPage
相关文章阅读JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
字体:[ ] 类型:转载 时间:
阅读了本书第五章关于使用JavaScript的最佳实践,大部分的建议之前都有耳闻,不过阅读之后有更深的体会
1、防止滥用JavaScript“不管你想通过JavaScript改变哪个网页的行为,都必须三思而后行。首先要确认:为这个网页增加这种额外的行为是否确有必要?”
个人认为,作者的这句话放在当前几乎无处不用JavaScript来增强Web页面交互体验的时代,可以理解为应该适当的使用JavaScript,而不要因为使用了实现酷炫效果的脚本导致网页加载缓慢或者兼容性极差而舍本求末,导致用户无法浏览和使用网站。
2、平稳退化平稳退化是指当用户禁用浏览器JavaScript或浏览器不支持JavaScript(还有吗)时,应该让用户仍然可以正常的浏览网站。
刚看到这个问题的时候,感觉这种情况几乎可以忽略不计,因此看了一些关于这个问题的讨论(知乎)以及博文《》,并拿博客园首页做了实验,即在禁用JavaScript的情况下浏览网页,发现虽然无法评论博客、无法正常显示分类效果、当然广告也没了,但是主要的功能(查看博文、分页跳转等)是可以正常使用的。
那么基本可以得出结论:在考虑平稳退化的时候,根据需要至少应该保证网站主要功能可以正常使用。对博客园来说,就是查看博客。
3、禁用"javascript:"伪协议和内嵌事件处理函数虽然在HTML中使用这两种写法,不会带来什么严重问题,但是它会阻止平稳退化(网页行为不一致),并且使脚本的编写方式混乱,增加了代码维护的难度。
4、性能考虑关于性能考虑的最佳实践,还是非常容易理解的。
“尽量少访问DOM和尽量减少标记”。少访问DOM是因为查询DOM的操作会非常耗费性能。多处函数的重复DOM查询应该进行重构,提取为全局变量或者直接作为参数进行传递。减少标记可以减小DOM的规模,从而减少查找DOM树中特定元素的时间。
“合并脚本”。合并外部脚本文件,可以减少加载页面时发送的请求次数。通过观察Chrome开发者工具Network标签,可以非常清楚的看到加载网页的请求次数和时间,下图为请求我的博客的情况,第三方的百度分享插件是最慢被加载的,当然整体加载时间还是可以接受的。不过当引用的文件过多过大,或者依赖的第三方插件请求缓慢时,整个页面就会一直处于加载状态,给人的感觉就是网页加载缓慢,体验就会变差。另外,“脚本在标记中的位置对页面的初次加载时间也有很大的影响”。就像bootstrap的实例中,引用的JS插件统统放在了页面的尾部,并加了说明。 因为根据HTTP规范,浏览器每次从同一个域名中最多只能同时下载两个文件,而在脚本下载期间,浏览器不会下载其它任何文件,即使是来自不同域名的文件也不会下载,所有其它的资源都要等脚本加载完毕后才会下载;而通常我们会把脚本文件放在块中,此时该块中的脚本会导致浏览器无法并行加载其它文件(如图片或其它脚本)。 把所有 &script& 标签放在文档的末尾,&/body&标签之前,就可以让页面变的更快,因为这样,在加载脚本时,window对象的load事件依然可以执行对文档进行各种操作。 最后一条建议就是压缩脚本,这个见的很多,通常就是以.min.js为后缀的脚本文件。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 dom编程艺术第三版 的文章

 

随机推荐