問題タブ [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.

0 投票する
7 に答える
14796 参照

javascript - イベント駆動型アーキテクチャ用の jQuery プラグイン?

イベント駆動型アーキテクチャの jQuery プラグインはありますか?

ステップ 1: 購読する

代替テキスト
サブスクライバーは途中でイベント ハンドラーにサブスクライブし、コールバック メソッドと、リッスンしているイベントの名前を渡します...

つまり、2 つの緑のサブスクライバーが p0 イベントをリッスンします。青のサブスクライバーは、p1 イベントをリッスンします。


ステップ 2: p0 イベントは、別のコンポーネントによってイベント ハンドラーに対して起動されます。

代替テキスト

  1. p0 イベントがイベント ハンドラーに対して発生します。
  2. イベント ハンドラーはサブスクライバーにイベントを通知し、ステップ 1: サブスクライブでサブスクライブしたときに指定したコールバック メソッドを呼び出します。

blue サブスクライバは p0 イベントをリッスンしていないため、通知されないことに注意してください。


ステップ 3: p1 イベントがコンポーネントからイベント ハンドラーに送信されます。

代替テキスト

p1 イベントは別のコンポーネントによって発生します

青色のサブスクライバーがコールバックを介してイベントを受信し、他の 2 つの緑色のサブスクライバーはイベントを受信しないことを除いて、前と同じです。

Flickrのleeand00による画像

見つけられないようですが、Javascript / jqueryで別の名前を付けているだけだと思います

また、このパターンに名前はありますか?これは単なる基本的なパブリッシャー/サブスクライバーではないため、別の名前を付ける必要があると思います。

0 投票する
4 に答える
378 参照

jquery - jQuery カスタム イベントの管理

数時間の追加調査を行いましたが、一般的な問題と思われるものの良いパターンをまだ見つけることができません.

私は.Net MVC2アプリに取り組んでいます。私たちのアプリは、メイン ページといくつかの部分ビュー (含まれるページ) で構成されています。各部分ビューは、HTML構造とJS-jQueryガッツで構成されるウィジェットに対応しています。

一部のウィジェットは相互に豊富な相互作用を持っているため、もちろん、jQuery のイベント バインディングを使用して、この効果を実現しています。

データ概要ウィジェット

データ操作ウィジェット

私たちが抱えている問題は、ユーザーがアプリケーションの一部に移動すると、これらのウィジェット (HTML/DOM) がページから削除され、新しい部分ビューのセットに置き換えられることです。ユーザーが戻ると、ダブル バインディングを作成する jQuery バインディングと共に HTML (視覚的表現) が再読み込みされます。

これまでのところ、私の解決策は不十分に思えます。

(1) バインディングの対象となる DOM オブジェクトにバインドします。

これに関する問題は、トリガーするウィジェットが、トリガーする DOM オブジェクトを知る必要が$("#summaryobject")あることです。つまり、どの種類の目的が無効になるかです。

(2) EventBus オブジェクトを作成して、誰がどのイベントをバインドしたかを追跡し、イベントを一度だけバインドできるようにします。私が抱えている問題は、誰が作成したかを追跡できないイベントを保存/バインドするときに、必要に応じて登録を解除できないことです....おそらく、登録されていないイベントは必要ありません。

カスタム イベントを管理するために他のユーザーが使用しているパターンは何ですか?

0 投票する
3 に答える
678 参照

gwt - 他のフレームワークでのGWTイベントバスの概念

市場に出回っている多くのフレームワークを知りませんが、GWTのイベントバスの概念のように、この手法は他のフレームワークにも存在しますか?

0 投票する
2 に答える
3167 参照

java - イベントバスレビュー

私はGWTから始めて、イベント バスの概念を学習しています。この解決策は非常に複雑だと思います。そこで、すべての問題を確認するために自分でプロトタイプを作成して単純化しようとしました。

最初に、イベントバスに関する私の理解について書きます (完全に間違っている可能性があります)。このようなイベントを開催しています

ハンドラー インターフェイス、

利用方法

それでおしまい。そして今、私のプロトタイプ。

利用方法

Type不要な操作を行ったり、イベントごとに Handler クラスを作成したりしないため、このソリューションの方がはるかに優れていると思います。欠点は 1 つだけです。ハンドラーの作成時にジェネリック型を指定する必要があります。しかし、この解決策を不可能にする他の多くの欠点や問題があると思います。彼らは何ですか?

0 投票する
5 に答える
10087 参照

design-patterns - Eventbusはメディエーターまたはオブザーバーパターンですか?

Eventbusはメディエーターまたはオブザーバーですか?Googleによると、「eventbusメディエーター」は2.430ヒット、「eventbusobserver」は3.850ヒットです。

説明から、それらは両方とも私がやろうとしていたことと一致するでしょう(メディエーターはもう少しです)。それで、eventbusは特定のパターンを実装しますか、それとも私が言うのは私次第ですか?

0 投票する
1 に答える
187 参照

gwt - GWT MVP で別のプレゼンターの状態にアクセスする必要がある 1 つのプレゼンター

私は 3 つの主要なプレゼンターを持つアプリケーションを作成しています。

「ListPresenter」と言うと、都市のリストを持つツリーがあります。「WritePresenter」と言うと、テキストを入力して更新をクリックします。更新は、都市の 1 つです。「ShowPresenter」と言うと、リストで現在クリックされている都市の更新が利用可能な場合にのみ、更新を表示します。

今私がやっている方法は... WritePresenter は、イベントが発生しているアイテムの詳細とともに EventBus でイベントを発生させます。ShowPresenter はこれらのイベントをリッスンし、ListPresenter の状態に基づいて自身を更新する必要があります。

ここで、ShowPresenter はどのようにして ListPresenter 状態にアクセスする必要がありますか。ListPresenter をインスタンス化するクラスから参照を取得できました。しかし、それは良いデザインアイデアのようです。カップリングも増えているようです。

可能な限り最善の方法は何ですか?

0 投票する
1 に答える
2567 参照

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(...)編集:実際の G​​WT アプリケーションでは、イベント用に複数の登録済みハンドラーがあるため、 using はデバッグ目的でのみ使用されていることに 注意してください。では、EventBus を適切に使用するにはどうすればよいでしょうか。

0 投票する
1 に答える
654 参照

java - Java の PubSub EventBus (コメット スタイル)

サブスクリプションとパブリケーションの両方が Java アプリケーションで行われる、非常に単純なイベント バスを構築しようとしています。

ただし、複数のサブスクライバーとパブリッシャーがさまざまな場所からバスと対話できるようにしながら、バスはサーバー側にデプロイする必要があります。

たとえば、simpleeventbusEventBusは適切ですが、単一の JVM で作業する場合に限られます。

私はCometのようなフレームワークについて考えてきましたが、Java 内で直接発行/購読を行うことができるフレームワークです。そのようなフレームワークやライブラリは存在しますか?

または、これに対して他にどのような提案がありますか?

0 投票する
3 に答える
7982 参照

c# - イベントバスの実装に関する質問

単純なイベントバスを実装しようとしています

私はこのように始めました:

しかし、PublishEventメソッドに問題があります。イベント引数のタイプを判別できません。そして、私はこれがすべてかなり間違っているのではないかと疑っています。

誰かが私が間違っていることを指摘できますか、これをどのように実装する必要がありますか?または、イベントバスが一般的にどのように実装されているか、または自分で実装してそれに時間を費やす代わりに使用できるフレームワーク。

0 投票する
1 に答える
2768 参照

javascript - javascriptイベントバスアーキテクチャ

20:50のこのビデオ(対応するスライド)では、NicholasZakasがイベントバスアーキテクチャであると私が考えるものを紹介しています。バスと対話する呼び出しを非同期にする必要があるかどうかはわかりません。
2番目の質問:呼び出しが非同期である場合、どのように実装する必要がありますか?
ありがとうございました