平稳退化
1、何为平稳退化?
如果正确使用了JavaScript脚本,就能让访问者在其浏览器不支持JavaScript的情况下仍能顺利的浏览网站。这就是所谓的“平稳退化”,也就是说,虽然某项功能无法使用,但最基本的操作仍能顺利完成。
2、平稳退化的例子
“javascript:”伪协议
Eg:<a href="javascript:showPic(this);return false;"
>blackPic</a>
当浏览器不支持JavaScript的时候,不会顺利打开链接页面。
内嵌事件处理函数
Eg:<a href="#" onclick="showPic(this);return
false;">blackPic</a>
“#”符号是一个仅供文档内部使用的标记(但就这条指令而言,“#”是未指向任何目标的内部链接)
同样不能平稳退化。
可以平稳退化的
Eg:<a href="images/blackPic.jpg"
onclick="showPic(this);return false;" >blackPic</a>
即使不支持JavaScript,也会按照默认的href,打开链接,只是少了JavaScript的效果。
3 、为啥需要平稳退化?
搜索机器人是一种自动化程序,它们预览Web的目的是为了把各种网页添加到搜索引擎的数据库里。只有极少的搜索机器人能够理解JavaScript代码。所以,如果JavaScript网页不能平稳退化,其在搜索引擎上的排名就可能大受损害。
对象检测
所有的元素(包括方法)都可以作为对象,可以把不支持某个特定DOM方法的浏览器检测出来。即:
If(method){
statements;}
在使用对象检测时,一定要删除方法名后面的圆括号,如果不删掉,测试的将是方法的结果,无论方法是否存在。
比较好的方法是
if(!method){return false;},比较直观,操作也少。
如果需要测试多个属性或方法是否存在,可以用“逻辑或”操作符将其合并。
Eg:if(!method1 || !method2){ return false; }
键盘访问事件
专门用来处理键盘访问的事件是onkeypress,按下键盘上任何一个按键都会触发onkeypress事件。这会带来麻烦。
在几乎所有的浏览器里,用Tab键移动到某个链接然后按下回车键的动作也会触发onclick事件。所以,不用onkeypress事件,而用onclick代替,也是可以的。
DOM Core和HTML-DOM
DOM Core的方法适用于任何一种标记语言,是通用的。而HTML-DOM只能用来处理Web文档。所以,为了通用性,最好用DOM Core方法。
两者对比:
var source = myNode.getAttribute("href"); //DOM Core
var source = myNode.href; //HTML-DOM
myNode.setAttribute("src", source); //DOM Core
myNode.src = source; //HTML-DOM
其他性能考虑
避免重复搜索操作,尽量少访问DOM:
在多个函数都会取得一组类似元素的情况下,考虑重构代码,把搜索结果保留在一个全局变量里,或者把一组元素直接以参数的形式传递给函数。
减少文档中的标记数量
过多的不必要的元素只会增加DOM树的规模,进而增加遍历DOM树以查找特定元素的时间。
合并脚本
多个js脚本合并,减少加载页面时发送的请求数量。
放置脚本
如前所述,放在</body>之前。
分享到:
相关推荐
JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象...
初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识...
Javascript编程宝典代码 Javascript编程宝典代码 Javascript编程宝典代码 Javascript编程宝典代码
JavaScript Obfuscator是一种工具,主要用于保护JavaScript代码,通过将源代码转换为难以理解的形式,以防止未经授权的用户查看、修改或盗窃代码。在Web开发中,尤其对于那些包含商业逻辑或者敏感信息的JavaScript...
示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码...
HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 ...
JavaScript,作为全球最广泛使用的编程语言之一,是创建交互式网页和动态应用的关键工具。《JavaScript征途》一书无疑是深入理解这门语言的理想资源。它涵盖了从基础语法到高级特性的全面讲解,并且提供了源代码供...
html+css+JavaScript的学习代码html+css+JavaScript的学习代码 html+css+JavaScript的学习代码html+css+JavaScript的学习代码 html+css+JavaScript的学习代码html+css+JavaScript的学习代码 html+css+JavaScript的...
在哪里放置 JavaScript 代码? 通常情况下,JavaScript 代码是和 HTML 代码一起使用的,可以将 JavaScript 代码放置在 HTML 文档的任何地方。但放置的地方,会对 JavaScript 代码的正常执行会有一定影响,具体如下所...
javascript注册页面代码(只包含用户名&密码&邮箱的验证)
本文总结了编写高性能JavaScript代码的最佳实践,讨论了JavaScript代码性能问题的几种设计模式对性能的影响,并提供了一些技巧来提高JavaScript代码的性能。 在研究JavaScript代码性能问题时,需要注意到设计模式对...
JavaScript,一种广泛应用于Web开发的脚本语言,是前端开发的核心技术之一。它诞生于1995年,由Netscape公司的Brendan Eich所创造,最初是为了增强网页的交互性。随着时间的推移,JavaScript已经发展成为一个功能...
javascript浮动广告代码
"JavaScript实战 源代码"这个项目,很显然是一本关于JavaScript编程实践的书籍的配套源代码。源代码通常包含了书中所讲解的各种示例和练习,帮助读者更好地理解和应用所学知识。 在学习JavaScript时,实战经验和...
同时,理解AJAX(异步JavaScript和XML)可以实现页面的无刷新更新,提升网站的性能和用户体验。 在“JavaScript开发技术大全”中,你可能还会发现关于DOM遍历和操作、CSS操作、动画效果制作、表单验证、JSON处理、...
基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的...
JavaScript js基础学习 示例代码JavaScript js基础学习 示例代码JavaScript js基础学习 示例代码JavaScript js基础学习 示例代码JavaScript js基础学习 示例代码JavaScript js基础学习 示例代码JavaScript js基础...
常用Javascript特效代码