`
shoren
  • 浏览: 59011 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

javaScript扫盲之代码性能

 
阅读更多

 

平稳退化

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;},比较直观,操作也少。

如果需要测试多个属性或方法是否存在,可以用“逻辑或”操作符将其合并。

Egif(!method1 || !method2){ return false; }

 

 

 

键盘访问事件

专门用来处理键盘访问的事件是onkeypress,按下键盘上任何一个按键都会触发onkeypress事件。这会带来麻烦。

在几乎所有的浏览器里,用Tab键移动到某个链接然后按下回车键的动作也会触发onclick事件。所以,不用onkeypress事件,而用onclick代替,也是可以的。

 

 

DOM CoreHTML-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 小游戏代码汇总

    10. 游戏优化:代码使用了游戏优化技术,例如使用缓存和优化游戏循环,提高了游戏的性能和流畅度。 JavaScript 小游戏代码汇总展示了 JavaScript 语言在游戏开发中的应用,包括游戏逻辑、游戏对象、游戏事件和游戏...

    初识JavaScript(源代码)

    初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识...

    Javascript Obfuscator代码混淆

    JavaScript Obfuscator是一种工具,主要用于保护JavaScript代码,通过将源代码转换为难以理解的形式,以防止未经授权的用户查看、修改或盗窃代码。在Web开发中,尤其对于那些包含商业逻辑或者敏感信息的JavaScript...

    JavaScript之Date对象(源代码)

    JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象...

    HTML CSS and Javascript 基础学习代码.zip

    HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 ...

    html+css+JavaScript的学习代码.zip

    html+css+JavaScript的学习代码html+css+JavaScript的学习代码 html+css+JavaScript的学习代码html+css+JavaScript的学习代码 html+css+JavaScript的学习代码html+css+JavaScript的学习代码 html+css+JavaScript的...

    JavaScript代码应该放在HTML代码哪个位置比较好?

    在哪里放置 JavaScript 代码? 通常情况下,JavaScript 代码是和 HTML 代码一起使用的,可以将 JavaScript 代码放置在 HTML 文档的任何地方。但放置的地方,会对 JavaScript 代码的正常执行会有一定影响,具体如下所...

    javascript源代码大全

    JavaScript,一种广泛应用于Web开发的脚本语言,是前端开发的核心技术之一。它诞生于1995年,由Netscape公司的Brendan Eich所创造,最初是为了增强网页的交互性。随着时间的推移,JavaScript已经发展成为一个功能...

    JavaScript实战 源代码

    "JavaScript实战 源代码"这个项目,很显然是一本关于JavaScript编程实践的书籍的配套源代码。源代码通常包含了书中所讲解的各种示例和练习,帮助读者更好地理解和应用所学知识。 在学习JavaScript时,实战经验和...

    Javascript开发技术大全源代码

    同时,理解AJAX(异步JavaScript和XML)可以实现页面的无刷新更新,提升网站的性能和用户体验。 在“JavaScript开发技术大全”中,你可能还会发现关于DOM遍历和操作、CSS操作、动画效果制作、表单验证、JSON处理、...

    基于JavaScript实现的程序员表白爱心代码(2套)

    基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的...

    《高性能JavaScript》(尼古拉斯·泽卡斯).pdf

    这本书深入浅出地讲解了JavaScript编程中的许多关键概念和技术,旨在帮助开发者提升代码效率,优化应用程序性能。 首先,书中详细介绍了JavaScript的基础知识,包括变量、数据类型、作用域、函数、对象和原型等。...

    JavaScript开发积分兑换小程序项目源代码.zip

    JavaScript开发积分兑换小程序项目源代码JavaScript开发积分兑换小程序项目源代码JavaScript开发积分兑换小程序项目源代码JavaScript开发积分兑换小程序项目源代码JavaScript开发积分兑换小程序项目源代码。...

    javascript 经典代码

    在标题"javascript 经典代码"中,我们可以推测这里涉及的是JavaScript语言中的关键代码示例,可能是解决常见问题的高效方案,或者是优化性能的技巧。这些经典代码可能是关于变量声明、函数定义、对象操作、数组处理...

    java执行JavaScript代码

    不过需要注意,随着Nashorn的废弃,未来可能需要转向其他引擎,如GraalVM的JavaScript引擎,以保持兼容性和性能。在实际项目中,根据具体需求和Java版本选择合适的JavaScript引擎是非常重要的。

    JavaScript 代码压缩工具

    JavaScript代码压缩工具是一种优化网页性能的关键技术,尤其在当今互联网应用越来越复杂,JavaScript文件体积日益庞大的背景下,其重要性不言而喻。压缩JavaScript代码的主要目的是减少文件大小,提高网络传输效率,...

    javascript源代码集锦

    JavaScript,简称JS,是一种轻量级的解释型编程语言,广泛应用于网页和网络应用开发,是Web开发的核心技术之一。这个“javascript源代码集锦”很可能是为了帮助开发者学习和理解JavaScript的各种技巧和最佳实践,...

    高性能JavaScript + 高清+目录 PDF

    总而言之,《高性能JavaScript》是一本全面而深入的指南,它不仅教会你如何写出高效的JavaScript代码,还让你理解背后的原理,从而在实践中做出明智的选择。无论你是初级开发者还是经验丰富的专家,这本书都能为你的...

    《高性能JavaScript编程》.Nicholas.C.Zakas著.英文版

    6. **JavaScript性能分析**:Zakas教授了如何使用开发者工具进行性能分析,识别性能瓶颈,并提供了改善代码性能的技巧,如避免阻塞渲染、减少HTTP请求等。 7. **JavaScript错误处理**:书中讨论了如何有效地捕获和...

    精通JavaScript(源代码) jQuery之父John Resig所写

    《精通JavaScript(源代码)》是由jQuery之父John Resig撰写的高级JavaScript技术书籍,它不仅深入探讨了JavaScript的核心概念,而且重点解析了jQuery库的内部工作机制,为读者揭示了JavaScript编程的深层次奥秘。...

Global site tag (gtag.js) - Google Analytics