亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

改善jQuery選擇器性能的好方法?

改善jQuery選擇器性能的好方法?

飲歌長嘯 2019-08-27 10:24:09
改善jQuery選擇器性能的好方法?我正在尋找任何可以改善jQuery調用的選擇器性能的方法。特別是這樣的事情:是$("div.myclass")不是快$(".myclass")我認為它可能是,但我不知道jQuery是否足夠聰明,首先限制標簽名稱的搜索等等。任何人對如何制定jQuery選擇器字符串以獲得最佳性能有任何想法?
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

毫無疑問,首先按標記名稱進行過濾比按類過濾要快得多。

在所有瀏覽器本地實現getElementsByClassName之前都會出現這種情況,就像getElementsByTagName的情況一樣。


查看完整回答
反對 回復 2019-08-27
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

在某些情況下,您可以通過限制其上下文來加速查詢。如果您有元素引用,則可以將其作為第二個參數傳遞以限制查詢的范圍:

$(".myclass", a_DOM_element);

應該比快

$(".myclass");

如果你已經有一個_DOM_element并且它明顯小于整個文檔。


查看完整回答
反對 回復 2019-08-27
?
慕勒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始終適用確保通過相應的分割強制選擇器順序。


查看完整回答
反對 回復 2019-08-27
  • 3 回答
  • 0 關注
  • 481 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號