如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
其实微博是个好东西,关注一些技术博主之后,你不用再逛好多论坛了,因为一些很好的文章微博会告诉你,最近看到酷勤网推荐的一篇文章《30个提高Web程序执行效率的好经验》,文章写得不错,提到一些经验都比较实用,是我们每一个做前端开发的人员都必须知道的。本人逐条解读一下,个人意见可能比较浅薄,看看大家对各个经验点怎么看了。1、尽量避免使用DOM。当需要反复使用DOM时,先把对DOM的引用存到JavaScript本地变量里再使用。创建页面元素的时候尽量不要使用DOM的document.createElement/appendChild()方法来创建,换用设置innerHTML的方法来替换。jiuye:过多使用DOM会增加DOM树的规模,进而影响文档遍历以及查找元素的性能。如果使用DOM元素的使用,建议使用如下方法进行:1varobj=document.getElementById("myId");2obj.XXX...;2、eval()有问题,newFuction()构造函数也是,尽量避免使用它们。jiuye:使用eval()或newFunction()构造函数作用于字符串表示的源码时,js引擎都需要将源码转换成可执行代码。这样的操作是很消耗资源的要比简单的函数调用慢100倍以上。同时,eval()函数效率特别低,由于事先无法知晓传给eval的字符串中的内容,eval在其上下文中解释要处理的代码,也就是说编译器无法优化上下文,因此只能有浏览器在运行时解释代码。这对性能影响很大。newFunction()构造函数比eval()略好,因为使用此代码不会影响周围代码,但是他的速度也快不到哪里去。可以通过重写eval()来替换直接使用eval(),通过创建匿名函数的方法来替换newFunction()。3、拒绝使用with语句。它会导致当你引用这个变量时去额外的搜索这样的一个命名空间,with里的代码在编译时期是完全未知的。jiuye:with的效率很低,with结构又创建了一个作用域,以便使用变量时脚本引擎搜索。这本身只轻微的影响性能。HYPERLINK"http://www.qqtop1.com"http://www.qqtop1.com但严重的是编译时不知道此作用域内容,因此编译器无法像对其他作用域(如函数产生的作用域)那样对之优化。可以使用变量引用对象,然后使用变量访问对象属性。但是此种方法要求属性非文字类型。先来看一个with的使用:1with(test.info){2name='John';3sex='male';4}再看看使用变量引用对象的实例:1varobj=test.infor;2obj.name='John';3obj.sex='male';4、使用for()循环替代for…in循环。因为for…in循环在开始循环之前需要Script引擎创建一个含有所有可循环属性的List,需要多检查一次。jiuye:for...in循环需要脚本引擎创建所有可枚举的属性列表,然后检查是否存在重复。5、把try-catch语句放在循环外面,不要放在循环里面,因为异常是很少发生的,放在外面避免每次都要执行它们。jiuye:其实不仅仅是循环,因为try-catch-finally结构比较特殊。和其他语法结构不同,它在当前作用域中创建新变量。每当catch执行时,就会将捕获到的exception对象赋给一个变量。这个变量不属于任何脚本。它在catch语句开始时被创建,在结束时被销毁。由于此函数比较特殊,且是在运行时动态创建动态销毁,有些浏览器对其的处理并不高效。把catch语句放在关键循环中将极大影响性能。如果可能,应在js中不频繁被调用的地方进行异常处理,或通过检查某种动作是否被支持来避免使用。6、不要过多使用全局变量,全局变量的生命周期贯穿整个js的生命周期,而本地变量的存在范围随着本地命名空间的销毁而消失。当在函数或其它地方引用一个全局变量时,脚本引擎需要搜索整个全局命名空间。7、fullName+='John';fullName+='Holdings';执行速度快于fullName+='John'+'Holdings'。jiuye:这个不知道该怎么去解释一下,至少我本人在js编码时不会写出这样的语句:fullName+='John'+'Holdings'。8、如果你需要把多个字符串连接起来,最好是把他们做成一个数组,然后调用join()方法实现这个操作。HYPERLINK"http://wangming.78name.com"http://wangming.78name.com这种方式在生成HTML片段时尤其有效。jiuye:这个主意赞的,以前没注意到!!!