文档网

解读30个提高Web程序执行效率的好经验

其实微博是个好东西,关注一些技术博主之后,你不用再逛好多论坛了,因为一些很好的文章微博会告诉你,最近看到酷勤网推荐的一篇文章《30个提高Web程序执行效率的好经验》,文章写得不错,提到一些经验都比较实用,是我们每一个做前端开发的人员都必须知道的。本人逐条解读一下,个人意见可能比较浅薄,看看大家对各个经验点怎么看了。

1、尽量避免使用DOM。当需要反复使用DOM时,先把对DOM的引用存到JavaScript本地变量里再使用。创建页面元素的时候尽量不要使用DOM的

document.createElement/appendChild()方法来创建,换用设置innerHTML的方法来替换。

过多使用DOM会增加DOM树的规模,进而影响文档遍历以及查找元素的性能。如果使用DOM元素的使用,建议使用如下方法进行: 1 var obj = document.getElementById("myId");

2 obj.XXX...;

2、eval()有问题,new Fuction()构造函数也是,尽量避免使用它们。

使用eval()或new Function()构造函数作用于字符串表示的源码时,js引擎都需要将源码转换成可执行代码。这样的操作是很消耗资源的要比简单的函数调用慢100倍以上。 同时,eval()函数效率特别低,由于事先无法知晓传给 eval 的字符串中的内容,eval在其上下文中解释要处理的代码,也就是说编译器无法优化上下文,因此只能有浏览器在运行时解释代码。这对性能影响很大。new Function()构造函数比eval()略好,因为使用此代码不会影响周围代码,但是他的速度也快不到哪里去。

可以通过重写eval()来替换直接使用eval(),通过创建匿名函数的方法来替换new Function()。

3、拒绝使用with语句。 它会导致当你引用这个变量时去额外的搜索这样的一个命名空间,with里的代码在编译时期是完全未知的。

with的效率很低,with结构又创建了一个作用域,以便使用变量时脚本引擎搜索。这本身只轻微的影响性能。http://www.wendangwang.com 但严重的是编译时不知道此作用域内容,因此编译器无法像对其他作用域(如函数产生的作用域)那样对之优化。

可以使用变量引用对象,然后使用变量访问对象属性。但是此种方法要求属性非文字类型。 先来看一个with的使用: 1 with( http://www.wendangwang.com ) {

2 name = 'John';

3 sex = 'male';

4 }

再看看使用变量引用对象的实例:

相关文档
热门文档
你可能喜欢
评论