用户名:
密 码:
当前位置: 主页 > 网页设计 > JavaScript >

网页制作JS代码优化(2)

点击:
银众网络-专业的域名注册虚拟主机服务商!虚拟主机全部为高带宽高配置、性能强劲。香港虚拟主机、美国虚拟主机等海外虚拟主机在速度和稳定性处于国际领先水平!每款虚拟主机均送同等容量的备份空间,随时备份让你的网站安全无忧,云主机更是功能强劲傲视群雄!

                <li>sdf</li><li>sdf</li><li>sdf</li><li>sdf</li><li>sdf</li><li>sdf</li>
        </ul>
可能你要为每个li添加click

为每个添加那可繁琐且容易出现溢出(ie)

其实只要为 ul一个添加就行了,因为事件是冒泡向上的


var ul = document.getElementById('a');
        ul.onclick = function (e){
                !e&&(e=event);
                var target = e.srcElement||e.target;
                if(target.tagName=='LI'){
                        //your code
                }
        }

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://www.yinzhong.net) 整理,如需转载,请保留来源。
(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------