Re: [問題] Jquery Find的效能

看板Ajax作者 (沉默是金。)時間15年前 (2010/10/21 23:43), 編輯推噓1(106)
留言7則, 4人參與, 最新討論串4/4 (看更多)
我的看法 ※ 引述《scribeTW (scribe)》之銘言: : ※ 引述《Futurend (未來)》之銘言: : : 假如說我有一個div叫做 divContent : : 我今天想要找一個input,我知道他在divContent下面 : : 那我有三種方法可以取得他 : : 1) $('#inputId'); : : 2) var $content = $('#divContent'); : : $content.find('#inputId'); : : 3) var $content = $('#divContent'); : : $('#inputId', $content'); 2,3 是同一件事,差異只差一層 function call,差不到哪去。 1 應該最快,理由其他人說過了。 : : 後面兩種方法的效能我猜測應該是優於第一種 : : 但2跟3這兩個方法哪種效能比較好呢 : : 或著有其他更好的寫法 : : 請前輩指點了 : 其實第1種是最快的。 : 理由是有ID值,jQuery直接就會用document.getElementById()取得, : 這是瀏覽器原生函數,速度最快。 : 再來jQuery的原始碼其實 $(expr, content) = $(content).find(expr), : 不過前者其實還有經過許多判斷,所以後者還比較快一些些。(少一些判斷流程) : 結論:1 > 2 > 3 1 > 2 =~ 3 : 另外推文提到的$('#divContent #inputId'),等同於 : $(document).find('#divContent #inputId')。 在 1.4.3 這個有機會比較快一點,因為可以直接走原生函式, 不過應該跟 2,3 相差不到哪去。 : --- : 想知道真的是看jQuery釋出的未壓縮Development Source Code最快。 : 你會看到裡面有很多註解。 -- 我:一半的日子讓你說,我聽你說你的所有______________________________________ ______________________________________一半的日子我想說,對你說過去的所有:我 _______________________________________________________ 在討論中妥善扮演兼具聆聽與分享的角色,是我們一生的課題。 _______________________________________________________ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.137.61.228

10/22 15:46, , 1F
我想問..如果1.4.3真的改用querySelectorAll是否支援IE6
10/22 15:46, 1F

10/22 19:40, , 2F
要怎麼要求十年前的瀏覽器支援現在的需求
10/22 19:40, 2F

10/22 20:59, , 3F
還是很多人不願換掉IE6
10/22 20:59, 3F

10/23 00:29, , 4F
不過 querySelectorAll也不是樣樣都好 http://goo.gl/ylPx
10/23 00:29, 4F

10/23 01:58, , 5F
我文章中有寫啊,舊瀏覽器沒support 就不會換,還是走舊的路
10/23 01:58, 5F

10/23 01:59, , 6F
它很多問題啦,看jQuery code 看到一堆 workaround ,像是他
10/23 01:59, 6F

10/23 01:59, , 7F
要element base ,跟在safari 時坐上有一點奇怪之類的。
10/23 01:59, 7F
文章代碼(AID): #1Cm5-9yF (Ajax)
討論串 (同標題文章)
文章代碼(AID): #1Cm5-9yF (Ajax)