問題タブ [event-bus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - イベント駆動型アーキテクチャ用の jQuery プラグイン?
イベント駆動型アーキテクチャの jQuery プラグインはありますか?
ステップ 1: 購読する
サブスクライバーは途中でイベント ハンドラーにサブスクライブし、コールバック メソッドと、リッスンしているイベントの名前を渡します...
つまり、2 つの緑のサブスクライバーが p0 イベントをリッスンします。青のサブスクライバーは、p1 イベントをリッスンします。
ステップ 2: p0 イベントは、別のコンポーネントによってイベント ハンドラーに対して起動されます。
- p0 イベントがイベント ハンドラーに対して発生します。
- イベント ハンドラーはサブスクライバーにイベントを通知し、ステップ 1: サブスクライブでサブスクライブしたときに指定したコールバック メソッドを呼び出します。
blue サブスクライバは p0 イベントをリッスンしていないため、通知されないことに注意してください。
ステップ 3: p1 イベントがコンポーネントからイベント ハンドラーに送信されます。
p1 イベントは別のコンポーネントによって発生します
青色のサブスクライバーがコールバックを介してイベントを受信し、他の 2 つの緑色のサブスクライバーはイベントを受信しないことを除いて、前と同じです。
見つけられないようですが、Javascript / jqueryで別の名前を付けているだけだと思います
また、このパターンに名前はありますか?これは単なる基本的なパブリッシャー/サブスクライバーではないため、別の名前を付ける必要があると思います。
jquery - jQuery カスタム イベントの管理
数時間の追加調査を行いましたが、一般的な問題と思われるものの良いパターンをまだ見つけることができません.
私は.Net MVC2アプリに取り組んでいます。私たちのアプリは、メイン ページといくつかの部分ビュー (含まれるページ) で構成されています。各部分ビューは、HTML構造とJS-jQueryガッツで構成されるウィジェットに対応しています。
一部のウィジェットは相互に豊富な相互作用を持っているため、もちろん、jQuery のイベント バインディングを使用して、この効果を実現しています。
データ概要ウィジェット
データ操作ウィジェット
私たちが抱えている問題は、ユーザーがアプリケーションの一部に移動すると、これらのウィジェット (HTML/DOM) がページから削除され、新しい部分ビューのセットに置き換えられることです。ユーザーが戻ると、ダブル バインディングを作成する jQuery バインディングと共に HTML (視覚的表現) が再読み込みされます。
これまでのところ、私の解決策は不十分に思えます。
(1) バインディングの対象となる DOM オブジェクトにバインドします。
これに関する問題は、トリガーするウィジェットが、トリガーする DOM オブジェクトを知る必要が$("#summaryobject")
あることです。つまり、どの種類の目的が無効になるかです。
(2) EventBus オブジェクトを作成して、誰がどのイベントをバインドしたかを追跡し、イベントを一度だけバインドできるようにします。私が抱えている問題は、誰が作成したかを追跡できないイベントを保存/バインドするときに、必要に応じて登録を解除できないことです....おそらく、登録されていないイベントは必要ありません。
カスタム イベントを管理するために他のユーザーが使用しているパターンは何ですか?
gwt - 他のフレームワークでのGWTイベントバスの概念
市場に出回っている多くのフレームワークを知りませんが、GWTのイベントバスの概念のように、この手法は他のフレームワークにも存在しますか?
java - イベントバスレビュー
私はGWTから始めて、イベント バスの概念を学習しています。この解決策は非常に複雑だと思います。そこで、すべての問題を確認するために自分でプロトタイプを作成して単純化しようとしました。
最初に、イベントバスに関する私の理解について書きます (完全に間違っている可能性があります)。このようなイベントを開催しています
ハンドラー インターフェイス、
利用方法
それでおしまい。そして今、私のプロトタイプ。
利用方法
Type
不要な操作を行ったり、イベントごとに Handler クラスを作成したりしないため、このソリューションの方がはるかに優れていると思います。欠点は 1 つだけです。ハンドラーの作成時にジェネリック型を指定する必要があります。しかし、この解決策を不可能にする他の多くの欠点や問題があると思います。彼らは何ですか?
design-patterns - Eventbusはメディエーターまたはオブザーバーパターンですか?
Eventbusはメディエーターまたはオブザーバーですか?Googleによると、「eventbusメディエーター」は2.430ヒット、「eventbusobserver」は3.850ヒットです。
説明から、それらは両方とも私がやろうとしていたことと一致するでしょう(メディエーターはもう少しです)。それで、eventbusは特定のパターンを実装しますか、それとも私が言うのは私次第ですか?
gwt - GWT MVP で別のプレゼンターの状態にアクセスする必要がある 1 つのプレゼンター
私は 3 つの主要なプレゼンターを持つアプリケーションを作成しています。
「ListPresenter」と言うと、都市のリストを持つツリーがあります。「WritePresenter」と言うと、テキストを入力して更新をクリックします。更新は、都市の 1 つです。「ShowPresenter」と言うと、リストで現在クリックされている都市の更新が利用可能な場合にのみ、更新を表示します。
今私がやっている方法は... WritePresenter は、イベントが発生しているアイテムの詳細とともに EventBus でイベントを発生させます。ShowPresenter はこれらのイベントをリッスンし、ListPresenter の状態に基づいて自身を更新する必要があります。
ここで、ShowPresenter はどのようにして ListPresenter 状態にアクセスする必要がありますか。ListPresenter をインスタンス化するクラスから参照を取得できました。しかし、それは良いデザインアイデアのようです。カップリングも増えているようです。
可能な限り最善の方法は何ですか?
ajax - Google Web Toolkit (GWT) EventBus イベントの発生/処理
バックグラウンド ストーリー:
標準の MVP デザイン パターンを使用し、RPC を使用してカスタム データ処理サーブレットからデータを取得する GWT アプリケーションを開発しています (舞台裏で多くのことを行います)。とにかく、私の目標は、RPC コールバックから返されたデータを静的キャッシュ POJO に格納する、非常に単純なカスタム キャッシュ メカニズムを作成することです。(コールバックは、SimpleEventBus を使用してカスタム イベントも登録済みのすべてのハンドラーに送信します。) データを再度要求するときは、RPC サーバー呼び出しを再度実行する前にキャッシュをチェックします。(また、EventBus を使用してカスタム イベントを送信します)。
問題:
RPC コールバックからイベントを送信すると、すべて正常に動作します。問題は、キャッシュされたオブジェクトを送信するだけで、RPC コールバックの外部でイベントを送信する場合です。何らかの理由で、このイベントが登録済みのハンドラーに到達しません。ここにいくつかのコードがあります:
これで、HelloActivity と GoodbyeActivity の 2 つのアクティビティができました ( GWT MVP コードから取得)
。ハンドラーが呼び出されると、メッセージも出力されます。とにかく、これは私がログから得た出力です:(正しくありません)
Getting Response from Cache for: com.hellomvp.client.activity.HelloActivity
Response in GoodbyeActivity from: com.hellomvp.client.activity.HelloActivity
Getting Response from Cache for: com.hellomvp.client.activity.GoodbyeActivity
Response in HelloActivity from: com.hellomvp.client.activity.GoodbyeActivity
私が期待するのはこれです:
そして、上記のコードを次のように変更すると、この期待される出力が得られます: (これは今回のファイル全体です...)
つまり、唯一の変更点は、何もしない新しい RPC 呼び出しを作成し、代わりにキャッシュされたデータを使用してそのコールバックでイベントを送信することです。これにより、アプリケーションが期待どおりに動作します。
質問:
私は何を間違っていますか?「eventBus.fireEvent(...)」が正しく機能するために RPC コールバックに含まれている必要がある理由がわかりません。これはスレッド化の問題だと思いますが、役に立ちそうなものを探して Google を無駄に検索しました。
私が抱えているこの問題を紹介する Eclipse プロジェクト全体があります。Eclipse Problem Project Exampleで見つけることができます。
eventBus.fireEventFromSource(...)
編集:実際の GWT アプリケーションでは、イベント用に複数の登録済みハンドラーがあるため、 using はデバッグ目的でのみ使用されていることに
注意してください。では、EventBus を適切に使用するにはどうすればよいでしょうか。
java - Java の PubSub EventBus (コメット スタイル)
サブスクリプションとパブリケーションの両方が Java アプリケーションで行われる、非常に単純なイベント バスを構築しようとしています。
ただし、複数のサブスクライバーとパブリッシャーがさまざまな場所からバスと対話できるようにしながら、バスはサーバー側にデプロイする必要があります。
たとえば、simpleeventbusとEventBusは適切ですが、単一の JVM で作業する場合に限られます。
私はCometのようなフレームワークについて考えてきましたが、Java 内で直接発行/購読を行うことができるフレームワークです。そのようなフレームワークやライブラリは存在しますか?
または、これに対して他にどのような提案がありますか?
c# - イベントバスの実装に関する質問
単純なイベントバスを実装しようとしています
私はこのように始めました:
しかし、PublishEventメソッドに問題があります。イベント引数のタイプを判別できません。そして、私はこれがすべてかなり間違っているのではないかと疑っています。
誰かが私が間違っていることを指摘できますか、これをどのように実装する必要がありますか?または、イベントバスが一般的にどのように実装されているか、または自分で実装してそれに時間を費やす代わりに使用できるフレームワーク。