我读了很多次以避免全局变量,而且局部变量更快。但是,如果我有分配的元素,我通过 id 选择并需要它们分配函数?每次执行该函数时,都会再次搜索 DOM 以查找元素……将元素缓存在全局范围内不是更快吗?
问问题
35 次
2 回答
1
确实如此,但在这种情况下,您只需找到元素一次,然后将集合作为参数传递给所有需要它的函数。
这样大家都很开心:DOM 只搜索了一次,仍然没有全局变量。
于 2013-05-01T08:49:01.770 回答
0
或者,您可以使用单个全局函数进行查找,其中包括一个缓存,因此不必重复读取 dom。例子:
function lookupElementById(id) {
if(lookupElementById.elementCache[id] !== undefined) lookupElementById.elementCache[id] = document.getElementById(id);
return lookupElementById.elementCache[id];
}
lookupElementById.elementCache = {}
于 2013-05-01T08:53:18.370 回答