-

jQueryの実行速度について考えていましてふと気になった事があります。
単純にID属性がついたものを引っ張るにはgetElementByIdが最速らしいと聞きまして、

ふと$(’#idname’) と $(document.getElementById(’idname’)) ってパフォーマンスに差が出るのか少し気になってしまいまいました。

変数に入れておいて後々、その子要素を.find()したりとか使いまわす想定です。
どなたかご存知でしたらおしえていただけませんでしょうか。

よろしくお願いします。

みんなの回答 7 件

名無しさんの回答

$(document.getElementById(’idname’)) を省略した書き方が$(’#idname’) でしょ。コンマ数秒の差がでるかでないかだと思うけどなぁ。

名無しさんの回答

ありがとうございます。
そうであれば$(’#idname’)で問題なさそうですね。こっちのほうが見た目もスマートですし素直に$(’#idname’)でいきます。

名無しさんの回答

jqueryの$()では引数の文字列を正規表現で一旦解析する処理が入ります。(引数がidなのかclassなのかとか)
idであればgetElementByIdをするという物なのでその差はでちゃいますが、少ない数であれば実感できるほどの差はないと思いますよ。
一度jQueryのソース自体も読んでみる事をおすすめします。

名無し

ありがとうございます。$()の際はそういった処理が走っているんですね。
是非、時間を作ってjQueryのソース読みにチャレンジしようと思います。
だらけてやらなくなる前に年内にはチャンレンジしたいと思います。

名無しさんの回答

$("div#idname")と$("#idname")の差は気にしてるけど、$()とgetElmentID()の差は気にしたことがないなあ。これ使わないとなるとjQuery使う意味があんまりない気が。。

名無しさんの回答

そこまで気にするなら、そもそものページ表示が遅くなるからjQuery使うなって話になるしね

名無し

レガシーブラウザの対応を考えるとやっぱりjQueryに頼ってしまうんです・・・。class属性で要素探す事ひとつにしてもIE6だの7だの対応を考えると結構面倒だと思うんですよね・・・。

名無しさんの回答

というか、その2つの差が、体感できるほど大量の情報が1つのページに詰まっているのなら、そんなページ、IE6でなんて読み込ませない方がいいような気がします。

名無しさんの回答

古いIEなんて嫌いだよ。

if(!jQuery.support.opacity) $("body").empty();
名無し

<!--[if IE]><style>*{ display: none }</style><![endif]-->

最終更新日:2012-11-01 (4,972 views)

関連するトピックス

ページ上部に戻る