将文档存储在变量中

时间:2011-03-27 13:25:42

标签: javascript

我只是想知道我是否将文档存储到变量中是否会有速度增强,所以如果我有

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

我知道在这个例子中它不会有太大的不同,但我的想法是我的变量将充当文档的“指针”,因此m脚本不需要尝试并返回文档。

3 个答案:

答案 0 :(得分: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)

文档是一个全局对象。如何更快地引用另一个变量然后记录而不是直接记录到文档?这是一个反复的问题:)

答案 2 :(得分:1)

存储将在变量中重用的内容是有价值的。 Document是一个糟糕的选择,因为它已经在窗口上可用。通常情况下,您可以存储在document中查找的内容,这些内容尚未通过顶级属性提供。在您可能开发的函数或插件中尤其如此,您希望保留对插件正在运行的DOM元素的引用,以避免每次都查找它。