数時間の追加調査を行いましたが、一般的な問題と思われるものの良いパターンをまだ見つけることができません.
私は.Net MVC2アプリに取り組んでいます。私たちのアプリは、メイン ページといくつかの部分ビュー (含まれるページ) で構成されています。各部分ビューは、HTML構造とJS-jQueryガッツで構成されるウィジェットに対応しています。
一部のウィジェットは相互に豊富な相互作用を持っているため、もちろん、jQuery のイベント バインディングを使用して、この効果を実現しています。
データ概要ウィジェット
$(document).bind("DataUpdated", summaryobject.updateTotals());
データ操作ウィジェット
$(document).trigger("DataUpdated");
私たちが抱えている問題は、ユーザーがアプリケーションの一部に移動すると、これらのウィジェット (HTML/DOM) がページから削除され、新しい部分ビューのセットに置き換えられることです。ユーザーが戻ると、ダブル バインディングを作成する jQuery バインディングと共に HTML (視覚的表現) が再読み込みされます。
これまでのところ、私の解決策は不十分に思えます。
(1) バインディングの対象となる DOM オブジェクトにバインドします。
$("#summaryobject").bind("DataUpdated", summaryobject.updateTotals());
これに関する問題は、トリガーするウィジェットが、トリガーする DOM オブジェクトを知る必要が$("#summaryobject")
あることです。つまり、どの種類の目的が無効になるかです。
(2) EventBus オブジェクトを作成して、誰がどのイベントをバインドしたかを追跡し、イベントを一度だけバインドできるようにします。私が抱えている問題は、誰が作成したかを追跡できないイベントを保存/バインドするときに、必要に応じて登録を解除できないことです....おそらく、登録されていないイベントは必要ありません。
カスタム イベントを管理するために他のユーザーが使用しているパターンは何ですか?