ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptコードを最適化する方法まとめ_javascriptスキル
JavaScript コードの最適化
著者: Gregory Baker、GMail ソフトウェア エンジニア、Erik Arvidsson、Google Chrome ソフトウェア エンジニア
必要な経験: JavaScript の実務知識
クライアント側のスクリプトにより、アプリケーションをより動的でアクティブにすることができますただし、ブラウザによるコードの解析によって効率の問題が発生する可能性があり、このパフォーマンスの違いはクライアントによって異なります。ここでは、JavaScript コードを最適化するためのヒントとベスト プラクティスについて説明します。文字列の連結操作は、Internet Explorer 6 および 7 のガベージ コレクションに大きな影響を与えます。この問題は Internet Explorer 8 では解決されていますが、文字列の連結 IE8 および他の非 IE ブラウザー (Chrome など) ではわずかに効率的です。ユーザーの大部分が Internet Explorer 6 または 7 を使用しているため、文字列の構築方法には細心の注意を払う必要があります。
次のサンプル コードがあります:
コードをコピー
IE JScript パフォーマンスに関する推奨事項 パート 3: JavaScript コードの非効率 を参照してください。
<span style="COLOR: #336600">with</span>
でを使用しないでください。スコープチェーンが変更され、他のスコープでの変数の検索が高くなるため、パフォーマンスに非常に悪影響を及ぼします。
ブラウザのメモリ リークを回避します<span style="COLOR: #336600">with</span>
イベント システムを使用してイベント ハンドラーをアタッチします
最も一般的な循環参照パターン [DOM 要素 --> イベント ハンドラー --> クロージャ スコープ -->] は、この記事
で説明されています。この問題を回避するには、十分にテストされたイベント システム (Google doctype、Dojo 、または JQuery. さらに、IE でインライン イベント ハンドラーを使用すると、別の種類のリークが発生します。これは通常の循環参照リークではなく、メモリ内の一時的な匿名スクリプト オブジェクトのリークです。詳細については、 を参照してください。 Internet Explorer のリーク パターンの解決
の「DOM 挿入オーダー リーク モデル」セクション (にもあります) JavaScript Kit チュートリアル にも例があります。 expando 属性の使用を避ける 拡張属性は DOM 要素に付加される任意の JavaScript 属性であり、メモリ リークを引き起こすことなく拡張属性を使用できますが、このリークのパターンは [ DOM 要素 --> 中間オブジェクト --> DOM 要素を使用する場合は、単純な値型を使用するのが最善の方法です。 Simple タイプを使用し、必要がなくなったら拡張属性を null に設定します。「Internet Explorer のリーク パターンの理解と解決
」の「循環参照」セクションを参照してください。