我知道 jQuery 不缓存元素集合,f.ex 调用:
$('.myclass').html('hello');
$('.myclass').html('bye');
会让 jQuery 爬上 DOM 两次。
但是缓存的 DOM 节点呢?
var elems = document.querySelectorAll('.myclass');
$(elems).html('hello');
$(elems).html('bye');
jQuery 会在内部缓存这些内容,还是会像第一个示例一样慢?
澄清一下:jQuery 是否会在内部保留对的引用elems
和缓存$(elems)
,这样就不必$()
每次都应用相同的包装器?
就像是:
cache = {}
constructor = function(collection)
if collection in cache
return cache[collection]
else construct(collection)