8.尽量用原生的方法,因为原生的都是用c/c++编译而成的他们执行的要比用js写的方法快多了
9.appendChild用的多时一定要用docuemntfragment
比如 for(var i=0;i<1000;i++){ var o = document.createElement('div'); document.body.appendChild(o); } 用documentFragment
var f = document.createDocumentFragment(); for(var i=0;i<1000;i++){ var o = document.createElement('div'); f.appendChild(o); } document.body.appendChild(f);
10. if else用的>=3个了,那用switch吧,好阅读,性能好
11. if<=3,别用if了,用3元表达式吧
12. if==1,if改&&
if(a==1)a=2 改 a==1&&(a=2);
13.计算元素位置,while()offsetParent
这个方式是老方式了,现在的浏览器ie6以上,ff3.1以上,chrome,opera(我只测了最新的)都支持这个el.getBoundingClientRect返回一个对像,分别是top,left,right,bottom的值
14.正则的查找没有indexOf快
var s= 'sdfsdfsdfAAAsdfdsfs'; for(var i=0;i<1000;i++){ s.indexOf('AAA') }
比这个快
var s= 'sdfsdfsdfAAAsdfdsfs'; for(var i=0;i<1000;i++){ /AAA/.test(s) }
15.在正则中多用非捕获(?:)这样快
16.设置某个元素的style时用cssText简单些
el.style.cssText +=";postion:absolute;"
(注意:position前;不能去了,因为ie没有这个;position认不出来了就,比的浏览器没这个毛病)
17.在new 时,没有参数时函数名后边的括号可以去了
new fn()==>new fn new Image()==>new Image
先想到这么多,再想到时在补偿,认为不对的提啊,别客气
经典论坛交流:http://bbs.blueidea.com/thread-2978972-1-1.html
本文链接:http://www.blueidea.com/tech/web/2010/7707.asp
出处:蓝色理想
责任编辑:bluehearts
上一页 js优化 [2] 下一页
◎进入论坛网页制作、WEB标准化版块参加讨论,我还想发表评论。
|