作者scribeTW (scribe)
看板Ajax
標題Re: [問題] Jquery Find的效能
時間Thu Oct 21 14:21:33 2010
※ 引述《Futurend (未來)》之銘言:
: 假如說我有一個div叫做 divContent
: 我今天想要找一個input,我知道他在divContent下面
: 那我有三種方法可以取得他
: 1) $('#inputId');
: 2) var $content = $('#divContent');
: $content.find('#inputId');
: 3) var $content = $('#divContent');
: $('#inputId', $content');
: 後面兩種方法的效能我猜測應該是優於第一種
: 但2跟3這兩個方法哪種效能比較好呢
: 或著有其他更好的寫法
: 請前輩指點了
其實第1種是最快的。
理由是有ID值,jQuery直接就會用document.getElementById()取得,
這是瀏覽器原生函數,速度最快。
再來jQuery的原始碼其實 $(expr, content) = $(content).find(expr),
不過前者其實還有經過許多判斷,所以後者還比較快一些些。(少一些判斷流程)
結論:1 > 2 > 3
另外推文提到的$('
#divContent #inputId'),等同於
$(document).find('
#divContent #inputId')。
---
想知道真的是看jQuery釋出的未壓縮Development Source Code最快。
你會看到裡面有很多註解。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.141.43.100
※ 編輯: scribeTW 來自: 220.141.43.100 (10/21 14:29)
1F:推 tomin:所以推文提到的速度呢?比2慢嗎?畫蛇添足? 10/21 15:37
2F:→ chrisQQ:好像也是,有ID的話幹麼用兩層,一般都是 class name 吧 10/21 16:34