jQueryの実行速度について考えていましてふと気になった事があります。
単純にID属性がついたものを引っ張るにはgetElementByIdが最速らしいと聞きまして、
ふと$(’#idname’) と $(document.getElementById(’idname’)) ってパフォーマンスに差が出るのか少し気になってしまいまいました。
変数に入れておいて後々、その子要素を.find()したりとか使いまわす想定です。
どなたかご存知でしたらおしえていただけませんでしょうか。
よろしくお願いします。
みんなの回答 7 件
$(document.getElementById(’idname’)) を省略した書き方が$(’#idname’) でしょ。コンマ数秒の差がでるかでないかだと思うけどなぁ。
ありがとうございます。
そうであれば$(’#idname’)で問題なさそうですね。こっちのほうが見た目もスマートですし素直に$(’#idname’)でいきます。
jqueryの$()では引数の文字列を正規表現で一旦解析する処理が入ります。(引数がidなのかclassなのかとか)
idであればgetElementByIdをするという物なのでその差はでちゃいますが、少ない数であれば実感できるほどの差はないと思いますよ。
一度jQueryのソース自体も読んでみる事をおすすめします。
$("div#idname")と$("#idname")の差は気にしてるけど、$()とgetElmentID()の差は気にしたことがないなあ。これ使わないとなるとjQuery使う意味があんまりない気が。。
そこまで気にするなら、そもそものページ表示が遅くなるからjQuery使うなって話になるしね
というか、その2つの差が、体感できるほど大量の情報が1つのページに詰まっているのなら、そんなページ、IE6でなんて読み込ませない方がいいような気がします。
古いIEなんて嫌いだよ。
if(!jQuery.support.opacity) $("body").empty();
関連するトピックス