访问DOM的方式对脚本性能会产生非常大的影响。
if(document.getElementsByTagName('a').length>0){
var links = document.getElementsByTagName('a');
for(var i=0;i<links.length;i++){
//对每个链接做点处理
}
}
不管什么时候只要查询DOM中的某些元素,浏览器就会搜索真个DOM树,从中查找可能匹配的元素。
document.getElementsByTagName("a"); //使用了两次浪费了一次
最好的方法是把第一次搜索的结果保存在一个变量中,然后再循环里重用该结果,比如:
var links = document.getElementsByTagName("a");
if(links.length>0){
for(var i=0;i<links.length;i++){
//对每个链接做点处理
}
}
++PS:另外一个需要注意的地方,就是尽量减少文档中的标记数量。过多不必要的元素只会增加DOM树的规模,进而增加遍历DOM树以查找特定元素的时间。++
结构化程序设计:有一条原则,函数一个入口和一个出口
实际工作中,过分拘泥于这项原则往往会使代码变得非常难以阅读。个人认为,如果一个函数有多个出口,只要这些出口集中出现在函数的开头部分是可以接受的。
function prepare(){
if(!document.getElementsByTagName) return false;
if(!document.getElementById)return false;
if(!document.getElementsById("imagegallery"))return false;