读书人

IE上JavaScript性能调优

发布时间: 2012-10-18 13:46:56 作者: rapoo

IE下JavaScript性能调优
很早之前读到的一篇IE的 Performance PM Peter Gurevich关于IE下性能优化的好文章,其实大多数的建议也适合其他的浏览器下的优化,很多Tips在Nicholas C. Zakas的《High Performance JavaScript》中也有提到。文章共分为三个部分。
第一部分链接地址:
http://blogs.msdn.com/b/ie/archive/2006/08/28/728654.aspx
第二部分链接地址:
http://blogs.msdn.com/b/ie/archive/2006/11/16/ie-javascript-performance-recommendations-part-2-javascript-code-inefficiencies.aspx
第三部分链接地址:
http://blogs.msdn.com/b/ie/archive/2007/01/04/ie-jscript-performance-recommendations-part-3-javascript-code-inefficiencies.aspx

Ext.Ajax.request({ method: 'GET', url: scriptUrl, disableCaching: false, success: function(response) { var jsScript = response.responseText; if (jsScript && jsScript.length > 0) { if(window.execScript) { window.execScript(jsScript); } else { window.eval(jsScript); } } ScriptLoader.load(); }, fail: function() { ScriptLoader.load(); } });

引用Switch Blocks are Linear Evaluation Tables
这个问题,我想只要switch不是在for循环体中不改是最好的。因为毕竟switch的语法要简洁易读的多。在代码的可读性和性能之间有时也需要作出取舍。


引用Avoid Closures if Possible
闭包是JS中最有争议的一种技术,因为用得好可以举重若轻的解决很多问题,但用的不好会影响性能,降低代码可读性,最糟糕的还是很多内存泄漏问题的罪魁祸首。
一般来说闭包有三种用途,1.匿名自执行函数,2.缓存,3.封装。
关于闭包的作用百度文库有一篇很好的文章:
http://wenku.baidu.com/view/ada910d4b14e852458fb577e.html
实际项目中闭包的作用还不只这些,完全取决于程序员的想象力,可以用闭包来改变回调函数的参数,如ExtJs的createDelegate,也可以用来创造一个JQuery式的万能对象。


引用Don’t use Property Accessor Functions
Property Accessor就是常见的getter和setter,JS中一般和闭包结合使用实现前面提到的数据封装。但是显然没有谁会为所有的property设一对getter和setter就像在JavaBean里那样。如果这有人这么做,那只能说Java中毒太深。或者委婉的说思想还不够JavaScript。

读书人网 >JavaScript

热点推荐