顧客の Web サイトに JavaScript を統合していて、そのページで特定のことが発生したときに通知する必要がある場合、イベント ハンドラーを本文またはその他のグローバル要素にアタッチして、それを発生させたほうがよいでしょうか。必要に応じてイベントを呼び出すか、必要に応じて呼び出し/実行できるグローバル関数を (ウィンドウ オブジェクトで) 定義する方がよいでしょうか?
一方は他方より速いですか?これに対するベストプラクティスはありますか?
ありがとう!
顧客の Web サイトに JavaScript を統合していて、そのページで特定のことが発生したときに通知する必要がある場合、イベント ハンドラーを本文またはその他のグローバル要素にアタッチして、それを発生させたほうがよいでしょうか。必要に応じてイベントを呼び出すか、必要に応じて呼び出し/実行できるグローバル関数を (ウィンドウ オブジェクトで) 定義する方がよいでしょうか?
一方は他方より速いですか?これに対するベストプラクティスはありますか?
ありがとう!
イベントとは、「マウスオーバー」のようなDOMイベントを意味しますか? あなたの施設を使用するためにコードを書きたいエンドユーザーがいるユースケースで「はい」の場合、タイプミスをして「BoughtChese」の代わりに「BoughtChese」イベントをスローする状況を想像します。この場合、イベントはキャッチされず、しばらく頭を悩ませます。
jQuery イベントや YUI カスタム イベントなどのイベント システムを意味しているのであれば、このアプローチは、複数のオブジェクトがイベントに関係している場合や、特定の方法で処理する必要がある場合に役立ちます (非同期またはキュー)。
単純なグローバル関数はグローバルオブジェクトの一部だと思います。dan.Notify("BoughtCheese") は、必要に応じて十分なようです。エンド ユーザーが関数を書き間違えると、コンソール エラーが発生します。パラメータ名を書き間違えると、それを検出するエラー チェック コードをいつでも追加できます。エンドユーザーが合意された整数のセットを使用でき、文字列を使用してイベントを参照できないようにするとよいでしょう。dan.Notify(BOUGHT_CHEESE); そうすれば、タイプミスがなくなり、エラー チェックが高速になります (イベント整数 ID が配列の範囲を超えていることをチェックします)。
大量の計算を行っていない限り、速度は問題にならないはずです。とにかく、関数呼び出しはより高速になるはずです。