2011-03-27 78 views
0

如果我的文档存储到一个变量是否会有一个速度提升,所以如果我有在变量存储文档

var doc= document; 
myElement = doc.getElementById('somethingSweet'); 

我知道在这个例子中它不会作出太大区别我只是想知道,但我的想法是,我的变量将作为文档的“指针”,因此m脚本不需要尝试引用文档。

+0

不,没有区别。据我所知,“文件”本身已经是一个指针。 – 2011-03-27 13:29:55

回答

1

裹在自执行匿名函数的代码,并通过文件作为一个变量

(function(doc) { 
    //code 
})(document); 

就其本身而言,我没有看到任何改进,它可以使。但是,这是一种广泛使用的缩小技术; minified,doc会变成类似a的东西,所以无论何时您的代码使用例如doc.getElementsByTagName,它都会变成a.getElementsByTagName。

编辑:一个简单的例子。

//Before minifying 
(function(document) { 
    var anchor = document.createElement('a'); 
    anchor.id = 'world'; 
    document.body.appendChild(anchor); 
    document.getElementById('world').innerText = 'Hello World'; 
})(document); 

//After minifying 
(function(a){var b=a.createElement("a");b.id="world";a.body.appendChild(b);a.getElementById("world").innerText="Hello World"})(document); 

注意文档如何变成“a”,所以我们每次保存7个字符!请注意,不建议编写混淆代码,并且在发送代码之前您应该只对其进行简化。

缩小的使用优秀Closure Compiler

1

文献是一个全局对象。如何更快地引用另一个变量,然后文档而不是直接文档?这是一个退步的问题:)

1

存储的东西将被重用在一个变量中有价值。 Document是一个糟糕的选择,因为它已经在窗口中可用。通常,您将存储在document中查找的内容,这些内容通过顶级属性不可用。在您希望保留对插件操作方便的DOM元素的引用的函数或插件中,这尤其适用于您可能开发的函数或插件,以避免每次都查看它。