如何将 document.querySelectorAll() 用于 jQuery 以提高性能?
How to use document.querySelectorAll() into jQuery for performance?
我了解到通过切换到 document.querySelectorAll()
而不是使用 jQuery 的本地选择器可以显着提高性能。
对于涉及数千个元素和嵌套循环等的实例,在 jQuery 中执行以下操作是否有任何性能优势?
//using querySelectorAll
elems = document.querySelectorAll('.element');
$(elems).addClass("className");
相对于做:
//traditional jQuery
elems = $(".element");
$(items).addClass("className");
如果不是,有什么方法可以将 document.querySelectorAll
合并到 jQuery 中?
是的,应该可以。 $(elems)
将从 NodeList
创建一个 jQuery 集合对象,然后您可以在其上使用 jQuery 方法。
但是,我认为不会有您期望的那么多好处。 jQuery 已在可行时调用 querySelectorAll()
。在确定 QSA 是否可用于给定选择器时可能会有少量开销。但是 jQuery 缓存了这个结果,所以如果你经常使用选择器,开销就会减少。
我了解到通过切换到 document.querySelectorAll()
而不是使用 jQuery 的本地选择器可以显着提高性能。
对于涉及数千个元素和嵌套循环等的实例,在 jQuery 中执行以下操作是否有任何性能优势?
//using querySelectorAll
elems = document.querySelectorAll('.element');
$(elems).addClass("className");
相对于做:
//traditional jQuery
elems = $(".element");
$(items).addClass("className");
如果不是,有什么方法可以将 document.querySelectorAll
合并到 jQuery 中?
是的,应该可以。 $(elems)
将从 NodeList
创建一个 jQuery 集合对象,然后您可以在其上使用 jQuery 方法。
但是,我认为不会有您期望的那么多好处。 jQuery 已在可行时调用 querySelectorAll()
。在确定 QSA 是否可用于给定选择器时可能会有少量开销。但是 jQuery 缓存了这个结果,所以如果你经常使用选择器,开销就会减少。