-
ID:DuFSLD さんの質問

みなさんはjQueryオブジェクトを変数に保存しておきますか?
みなさんの当てはまるものを次から教えて下さい。
①var hoge = $(’#parent .child’);で前もって保存しておく
②var hoge = $(’#parent’); とし必要なときに都度hoge.find()を行う
③全体的に使うなら保存しておく
④保存せず都度探査させる
. . . .
当方としては、メモリを圧迫したくないし昨今CPUの能力も高いので④の都度探査させる、です。

みんなの回答 6 件

ID:KzGe3H さんの回答

だいたい②かな。.find()使ったほうが処理が早いという理由で。
ちょっとしたものを作るときは④。
正直プログラム畑じゃないので、軽量化高速化以外に
メモリを圧迫とかはあんまり意識したことなかった...

ID:/tJvds さんの回答

③です!!

ID:fhX/pG さんの回答

状況によって使い分けるとしか言いようがない。

① 2回以上使用すると決まっている場合。特にループで使用する場合は必須。
② 2回以上使用する可能性はあるが、使わない可能性もある場合。
④ 1回しか使わないと決まっている場合

ID:DuFSLD さんの回答

結構バラバラなんですねぇ
メモリ優先(メモリ消費を抑える等)かCPU優先(処理時間や電力の消費を抑える等)かでいうとどうですか?

ID:.kfecu

処理時間かな

ID:Efk1hJ さんの回答

一定以上の規模になるとセレクタを変数で保持するのは、早さというよりもDRYの原則として使います。
メモリに関してはセレクタくらいのレベルならほとんど気にする必要はないかと思いますが。

ID:24Q8n9 さんの回答


なんていうか、jQueryオブジェクトって知らない間に中身が入れ替わる事があるので極力ベタで書いてる。
変数に入れたほうが最適化できるんだろうけど、それが差に現れるほど重量級のスクリプトなんて書かんし。
どうしてもコード的に共通化したい場合は、検索式の方を変数化する選択肢もあると思う。

ID:fhX/pG

認識が甘いんじゃないかな。scrollイベントあたりでそんな使い方をするだけでスマホじゃ重くなる。もしくは、scrollイベントが重量級なの?

ID:24Q8n9

scrollイベントでどういう使い方するのかにもよるけど、おそらくは座標関係でしょ?
それだったらjQueryオブジェクトではなく座標の数値を変数に入れる。

っていうか、スマホも対象にする案件でscrollでごにょごにょするような安件なんてほとんど無いから認識甘いっちゃ甘いのかもしんない。

ID:fhX/pG

stickyなんていうのはそのものだね。

最終更新日:2014-11-10 (4,844 views)

関連するトピックス

ページ上部に戻る