jQuery を使用する場合、JavaScript エンジンの速度を気にする必要がありますか?

StackOverflow https://stackoverflow.com/questions/1477921

質問

私はページの jQuery を書いています。 多くの DOM 要素が複雑に絡み合ったもの (私にはこれを制御できません)。主なターゲットブラウザは次のとおりです。 IE7, 、JavaScript エンジンの速度に懸念があります。私がすでに書いたスクリプトは遅れており、私の能力の限りパフォーマンスが調整されています。

たとえば単一のスクリプトを使用して、保守と理解が簡単なスクリプトを作成できます。 contains 声明。あるいは、この乱雑な HTML を介して DOM 検索を絞り込み、より複雑になることによってエンジンを支援することもできます。

jQuery スクリプトを作成するときにブラウザの JavaScript エンジンの速度を考慮する必要がありますか?

役に立ちましたか?

解決

jQueryはJavaScriptで書かれています。したがって、JavaScript エンジンの速度は jQuery コードの速度にも影響するため、その速度に注意する必要があります。

より効率的な jQuery コードを記述する方法に関するヒントやコツがたくさんあります。主な原則は、jQuery がどのように機能するか、セレクターが DOM から要素を選択するクエリにどのように変換されるかなどを理解することです。

他のヒント

可能な限り、jQuery メソッドではなくネイティブ JavaScript メソッドを使用するようにすると、通常、速度が大幅に向上することに気づくでしょう。 特にIEでは。 IE の JS レンダリング エンジンは、他のブラウザと比較すると SLLLOOOOWWW です。

たとえば、FF/Safari では正常に動作する AJAX スクリプトがありましたが、IE では凍った糖蜜のように動作しました。これを作成した開発者は、大きな JSON ファイルからデータを取得するために jQuery の $.each() メソッドを多用していたことが判明しました。代わりに標準の JS for() ループを使用するようにスクリプトを書き直しました。その後、いくつかの速度テストを実行したところ、for() を使用した方が 20 倍以上高速であることがわかりました。

はい、でもそれに執着するべきではありません:)

Contains は、要素内に表示されるテキストによってドキュメント モデルがインデックス付けされるとは思えないため、比較的遅い可能性があります。

ただし、何かをオーバーエンジニアリングして、最適化のために最適化しようとすることが賢明であるかどうかはわかりません。機能する最も単純なものを選択し、テストし、問題がある場合は最適化します。

JQuery やプラグインを使用する利点 (ブラウザー間の互換性、非常に便利な機能) が速度の低下によって上回るという状況に遭遇したことは 1 つもありません。そして、私は時々かなり大きな Web ページを扱うことがあります。

とにかく、それを知る唯一の方法は試してみることです。最初は可能な限り最も賢明な方法でコードを作成してください。遅すぎる場合は、最適化を検討してください。

DOM トラバーサルの最適化
http://www.learningjquery.com/2006/12/quick-tip-optimizing-dom-traversal

いいえ、コードの記述方法には影響しないはずなので、気にする必要はありません。

つまり、常に効率的な Javascript を作成する必要があります。これは単なる良い習慣であり、ほとんどのサイトでは特定のユーザーがどのブラウザを実行しているかわからないため、最悪の事態を想定したほうがよいからです。

はい、心配する必要がありますが、幸いなことに、jQuery チームも同様に心配しています。

jQuery 内部への最近の変更 (最後の 2 つのスライドを確認してください)

過剰な最適化はせず、必要なだけ最適化してください。

それが遅い場合は、実際にそこに入って jquery を支援する以外に選択肢はありません。しかし、そうでないなら、なぜわざわざ悩む必要があるのでしょうか。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top