【www.gdgbn.com--元旦图片】

javascript 获取文档所有图片
function updateUI(){
    var imgs = document.getElementsByTagName("img");
    for(var i=0, len=imgs.length; i < len; i++){
        imgs[i].title = document.title + " image " + i;
    }
 
    var msg = document.getElementById("msg");
    msg.innerHTML = "Update complete.";
}

这个函数可能看起来完全没有问题,但它有三个参考全球文档对象。如果有一个页面上

的图像人数众多,在循环参考文件可以得到执行的几十或几百次,每次需要查找的范围

链。通过创建一个局部变量的文档对象点,您可以增加限制了一些全球查找只有一个此

函数的性能:

function updateUI(){
    var doc = document;
    var imgs = doc.getElementsByTagName("img");
    for(var i=0, len=imgs.length; i < len; i++){
        imgs[i].title = doc.title + " image " + i;
    }
 
在这里,第一个文档对象是存储在本地文档变量。该文档变量,然后用文件地点在整个

代码的其余部分。只有一个全球在此函数查找,比以前的版本,保证了它会运行得更快

。一个好的经验法则是任何全球存储对象,用于在一个函数不止一次作为一个局部变量


 
避免与声明


with语句应避免在性能很重要。类似的功能,具有语句创建自己的范围,因此增加了它

在执行的代码的范围链的长度。在执行的代码的语句是保证代码的运行速度比执行外,

是因为在查找范围链的额外步骤。这是罕见的语句是必需的,因为它主要是用来消除多

余的字符。在大多数情况下,局部变量可以用来完成不引入一个新的范围,同样的事情

。下面是一个例子:

function updateBody(){
    with(document.body){
        alert(tagName);
        innerHTML = "Hello world!";
    }
}

 

function updateBody(){
    var body = document.body
    alert(body.tagName);
    body.innerHTML = "Hello world!";
}

此代码使用使用document.body更轻松地与发言。同样的效果可以通过使用一个局部变量

,如下:
    var msg = doc.getElementById("msg");
    msg.innerHTML = "Update complete.";
}

本文来源:http://www.gdgbn.com/ps/23092/