我只是想知道我是否将文档存储到变量中是否会有速度增强,所以如果我有
var doc= document;
myElement = doc.getElementById('somethingSweet');
我知道在这个例子中它不会有太大的不同,但我的想法是我的变量将充当文档的“指针”,因此m脚本不需要尝试并返回文档。
答案 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元素的引用,以避免每次都查找它。