飲歌長嘯
2019-08-27 10:24:09
改善jQuery選擇器性能的好方法?我正在尋找任何可以改善jQuery調用的選擇器性能的方法。特別是這樣的事情:是$("div.myclass")不是快$(".myclass")我認為它可能是,但我不知道jQuery是否足夠聰明,首先限制標簽名稱的搜索等等。任何人對如何制定jQuery選擇器字符串以獲得最佳性能有任何想法?
3 回答
汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
毫無疑問,首先按標記名稱進行過濾比按類名過濾要快得多。
在所有瀏覽器本地實現getElementsByClassName之前都會出現這種情況,就像getElementsByTagName的情況一樣。
回首憶惘然
TA貢獻1847條經驗 獲得超11個贊
在某些情況下,您可以通過限制其上下文來加速查詢。如果您有元素引用,則可以將其作為第二個參數傳遞以限制查詢的范圍:
$(".myclass", a_DOM_element);應該比快
$(".myclass");如果你已經有一個_DOM_element并且它明顯小于整個文檔。
慕勒3428872
TA貢獻1848條經驗 獲得超6個贊
正如Reid所說,jQuery是自下而上的。雖然
這意味著
$('#foo bar div')慢很多$('bar div #foo')
這不是重點。如果你有,#foo你不會在選擇器中放任何東西,因為ID必須是唯一的。
重點是:
如果你從帶有ID的元素中選擇任何東西,那么先選擇后面的,然后再使用
.find,.children等等:$('#foo').find('div')您最左邊(第一)選擇的部分可以是效率較低縮放到最右邊(最后)的一部分應該是最有效的-這意味著,如果你沒有一個ID確保你正在尋找
$('div.common[slow*=Search] input.rare'),而不是$('div.rare input.common[name*=slowSearch]')-因為這ISN” t始終適用確保通過相應的分割強制選擇器順序。
添加回答
舉報
0/150
提交
取消
