ここ数ヶ月は、最適なJavaScriptイベントの取り扱いに関する重要な議論を目撃しました。 GoogleのJSACTIONライブラリと今後のECMAScript 7 object.observe()メソッド(Chrome 36およびnode.js Harmonyで既にサポートされている)は、この議論を促進しました。 この記事では、さまざまなイベント処理パターンを調査し、その利点と短所を比較検討しています。
キーポイント:
addEventListener
成長傾向には、イベントだけでなくデータ処理も、影響を受けるDOM要素内にロジックを直接配置することが含まれます。 Angular、Ractive、ReactなどのフレームワークはMVCを強制し、テンプレートを介したデータバインディングおよび反応性プログラミングを可能にします。 このアプローチは、特定のコンテキストで保守性を改善する可能性がある一方で、緊密に結合したプレゼンテーションとロジックの落とし穴を避けるために慎重に検討する必要があります。
object.observe()は、ES6の一部ではありませんが、イベント処理を超えて出版社/サブスクライバーパターンをネイティブにサポートすることにより、大幅なパフォーマンスの改善を約束します。 宣言的なフレームワークはすでに同様のロジックを活用しており、object.observe()はそれらの効率をさらに強化します。 歴史的に、インラインイベントハンドリング( object.observe()は、オブジェクトの変更を観察するための強力なメカニズムを提供し、フレームワークのみに依存せずにより効率的なデータバインディングを可能にします。 現在、ブラウザのサポートは制限されていますが、リアクティブプログラミング機能の大幅な進歩を表しています。
結論:
最適なJavaScriptイベント処理アプローチは、プロジェクトの詳細に依存します。 宣言的なフレームワークは、保守性とパフォーマンスの点で大きな利点を提供しますが、JSACTIONやObject.observe()のニュアンスを含むさまざまなパターンのトレードオフを理解することは、情報に基づいた決定を下すために重要です。
JavaScriptのCrockford - エピソードIV:Ajaxの変態
Google JavaScript Style Guideonclick
属性)が標準でしたが、その制限(読みやすさ、保守性、グローバルスコープ汚染、XSSの脆弱性)がaddEventListener
の採用につながりました。 jQueryのようなライブラリがこのプロセスを合理化し、スケーラビリティとデバッグを改善しました。 ただし、特に古いブラウザで閉鎖が慎重に管理されていない場合、addEventListener
は依然としてメモリリークにつながる可能性があります。
javaScriptクロージャー
このセクションには、簡潔に凝縮された元のテキストに記載されているFAQの要約が含まれています。 完全な説明は、元のテキストで入手できます。
stopPropagation()
およびpreventDefault()
。preventDefault()
メソッド。RegExp
を使用した文字列のパターンマッチング
try...catch...finally
==
ゆるいvs.厳格な平等。===
console.log()
以上がJavaScriptイベント処理における新しいパターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。