2

私は多くの DOM 要素の複雑な混乱であるページの jQuery を書いています(これを制御することはできません)。主な対象ブラウザはIE7で、その JavaScript エンジンの速度に懸念があります。私が既に作成したスクリプトは遅延が多く、私の能力を最大限に発揮できるようにパフォーマンスが調整されています。

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

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

4

8 に答える 8

5

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

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

于 2009-09-25T15:20:12.770 に答える
2

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

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

于 2009-09-25T15:37:14.753 に答える
0

要素内に表示されるテキストによってドキュメントモデルが何らかの方法でインデックス化されているとは思わないため、contains は比較的遅い可能性があります。

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

于 2009-09-25T15:24:23.290 に答える
0

過度に最適化するのではなく、必要なだけ最適化してください。

遅い場合は、そこに行ってjqueryを支援する以外に選択肢はありません。しかし、そうでない場合は、なぜ気にする必要がありますか。

于 2009-09-27T05:42:20.020 に答える
0

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

于 2009-09-25T15:22:52.297 に答える
0

私は、JQuery やプラグインを使用する利点 (ブラウザー間の互換性、非常に便利な機能) が、速度の低下に勝る単一のインスタンスに出くわしたことはありません。また、かなり大きな Web ページを扱うこともあります。

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

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

于 2009-09-25T15:23:32.997 に答える
0

いいえ、コードの記述方法に影響を与えるべきではないため、気にする必要はありません。

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

于 2009-09-25T15:32:42.810 に答える
0

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

jQuery 内部の最近の変更点 (最後の 2 つのスライドをご覧ください)

于 2009-09-25T15:33:30.060 に答える