`
shoren
  • 浏览: 58113 次
  • 性别: 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函数(源代码)

    JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)...

    初识JavaScript(源代码)

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

    Javascript编程宝典代码

    Javascript编程宝典代码 Javascript编程宝典代码 Javascript编程宝典代码 Javascript编程宝典代码

    JavaScript 小游戏代码汇总

    JavaScript 小游戏代码汇总

    JavaScript之Date对象(源代码)

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

    javascript特效代码大全

    javascript特效代码大全 javascript特效代码大全 javascript特效代码大全

    JavaScript之Math对象(源代码)

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

    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 基础学习代码 ...

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

    在哪里放置 JavaScript 代码? 通常情况下,JavaScript 代码是和 HTML 代码一起使用的,可以将 JavaScript 代码放置在 HTML 文档的任何地方。但放置的地方,会对 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教程源代码

    JavaScript教程源代码 渐渐深入型

    javascript 计算器 源代码

    javascript 计算器 源代码

    javascript注册页面代码

    javascript注册页面代码(只包含用户名&密码&邮箱的验证)

    JavaScript数组(源代码)

    JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)JavaScript数组(源代码)...

    javascript浮动广告代码

    javascript浮动广告代码

    JavaScript之DOM事件(源代码)

    JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源...

    javascript网站广告代码大全

    超酷选项卡在上面的广告代码,幻灯片播放效果广告代码,首页两侧广告代码。

    Javascript代码美化工具

    JS Beauty 是一款 Javascript 美化工具,它具有美化,净化,压缩和解压缩 Javascript 代码等功能: 1. 美化:将混乱的 Javascript 代码格式化为优美的带缩进的格式,适合阅读和修改。 2. 净化:去掉 Javascript ...

    javascript 常用代码大全

    javascript 常用代码大全javascript 常用代码大全javascript 常用代码大全javascript 常用代码大全

    JavaScript教程源代码.rar

    JavaScript教程源代码 JavaScript教程源代码

Global site tag (gtag.js) - Google Analytics