問題タブ [observer-pattern]

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 投票する
4 に答える
296 参照

design-patterns - Observables / Listenablesをどの程度細かくする必要がありますか?

いくつかの状態が変化したときにオブザーバー/リスナーに通知するプル指向のObservable/Listenableがあります。

状態は複数のデータのナゲットで構成されており、一部のオブザーバー/リスナーは状態全体を気にしません。

とにかくすべてのオブザーバー/リスナーに通知し、何も変更されていない場合は通知を無視できるようにすることをお勧めしますか?

または、通常、データの「ナゲット」ごとに個別のObservableを使用して、オブザーバー/リスナーが応答する必要のある通知のみを受け取ることが保証されますか?

状況次第ですか?

Observables / Listenablesの粒度について一般的な考えはありますか?

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

javascript - 更新:プロトタイプのDOMノードでイベントリスナーを見つける方法は?

この質問に対する最新の回答を探しています。

Event.observers は Prototype 1.6 以降では (おそらくメモリ リークを避けるために) 使用されなくなったようですが、どのイベント リスナーが要素にアタッチされているかを追跡するにはどうすればよいでしょうか?

Firebug には「次のブレーク」ボタンがあることは知っていますが、body 要素には、別の特定の要素で必要な動作に到達する前に実行されるマウス リスナーがいくつかあるので、他の方法はありますか?

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

ruby-on-rails - Rails では、モデルのみのセットアップで Sweeper が呼び出されません

私はページキャッシュを使用して静的なhtml出力を保存しているRailsアプリに取り組んでいます。キャッシングは正常に機能します。ただし、キャッシュの有効期限が切れるのに問題があります。

私の問題の一部は、コントローラーからキャッシュを期限切れにしないためだと思います。これに必要なすべてのアクションは、モデル内で処理されています。これは実行可能であるように思われますが、私が見つけたモデルベースのキャッシュの有効期限への言及はすべて古くなっているように見えるか、そうでなければ機能していません。

私のenvironment.rbファイルで、私は呼び出しています

そして、/sweepers フォルダーに LinkSweeper ファイルがあります。

では、モデルを更新したときにキャッシュされたページが削除されないのはなぜですか? (プロセス: スクリプト/コンソールを使用して、データベースからアイテムを選択して保存していますが、対応するページはキャッシュから削除されていません)、通常は呼び出される Link モデルの特定のメソッドも呼び出しています。スイーパー。どちらも機能しません。

問題がある場合、キャッシュされたファイルは Links テーブルのキー値から md5 ハッシュされたものです。キャッシュされたページは、/l/45ed4aade64d427...99919cba2bd90f.html のような形式で保存されます。

基本的に、スイーパーは実際にはリンクを監視していないように見えます。また、environment.rb の config.active_record.observers にスイーパーを単純に追加することもできるかもしれないと読みました (こちら) が、それではうまくいかなかったようです (そして、app/sweepers の load_path がenvironment.rb でそれを回避しました)。

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

design-patterns - 持続性パターン - ルールベースのオブザーバー

次のいずれかの変更をユーザーがサブスクライブできるアプリに機能を追加しようとしています。

  • 別のエンティティへ (任意のユーザーによる)
  • 別のユーザーによって (他のエンティティに対して)
  • 2 つの組み合わせ (この最後の 1 つはオプションですが、問題がより難しくなります)

これらのルールをデータベースに保持する最善の方法を考えています。

私は当然、特定のエンティティ (ユーザー自体を含む) ごとに傾向があります。追加の UserSubscription テーブル/エンティティ (たとえば、PublisherUserSubscription、BookUserSubscription、UserUserSubscription) を追加します。

これは、整合性が適用された状態でサブスクリプションが永続化されることを意味します。ただし、これは、必要なテーブルの数の点ですぐに膨張し、後でサブスクリプション モデルを変更すると、非常に脆弱な設計になる可能性があるようです。(既存のすべてのテーブルを更新する必要がある場合があります)。

これはかなりありふれた現実世界のシナリオであることを考えると、これにはいくつかのパターンがあると思います。誰でもいくつか提案できますか?

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

c# - ネットワーク上のオブザーバー

イベント コンシューマー (サブスクライバー/オブザーバー) とイベント プロデューサー (パブリッシャー/サブジェクト) が分散した地理上にあるイベント ドリブン アーキテクチャが必要です。

.NET には、トランスポート メカニズムの実装に接続する必要なく、ネットワーク経由でシームレスにイベントをリレーするものがありますか?

2 年ほど前に DNR の番組で Juval Lowy が Enterprise Services について何か言ったことを思い出しますが、それが何であったか思い出せません。

これを行うために.NETフレームワークから何を使用できるか知っている人はいますか?

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

java - Java オブザーバーとオブザーバブル

この JFrame のボタンをクリックしたときに、printobserver の update メソッドが呼び出されない理由を誰か説明できますか?

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

ruby-on-rails - オブザーバーとコールバック

オブザーバーまたはコールバックを使用することを考えました。何をいつオブザーバーを使用する必要がありますか?

Fe あなたは次のことができます:

または、オブザーバーを作成して、ユーザーが作成されたときにそれを監視することもできます...

あなたは何をお勧めしますか?

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

php - livevalidation JavaScript ライブラリの custom.validation 関数を使用するにはどうすればよいですか?

(注: 私の元の質問は私の openid にリンクされていませんでした。編集/更新/対応できるようにここに再投稿しています。アクセスできる人が元の質問を削除できる場合: /questions/1554916/how-to-use-the -livevalidation-javascript-library-custom-validate-function 素晴らしいでしょう!!)

やあ皆さん、

私はこれらすべてに非常に慣れていないので、ご容赦ください!

フィールドの livevalidation チェックと、ユーザー名が有効かどうかを確認するための ajax/json チェックを使用してフォームを作成するようにしました。私は標準のライブ検証とうまくやっているようです。

これは私が現時点で持っているもののデモです:リンクテキスト

ajaxユーザー名チェックに応答する方法は、メッセージを表示するように変更するだけなので、livevalidationチェックを使用してajax応答を管理したいので、それらを一緒にリンクできます(空白をチェックしてから使用し、無効にし、OK として渡す)、応答を同じように出力します。

私は現在、このフォームコードを持っています:

これは、バックグラウンドで実行される json 部分です。

したがって、 livevalidation のドキュメントを見ると、次の方法でカスタム検証を使用できます。

私はこれが非常に不可解であることに気付きました - 私はそこにすべての準備ができている 'function(r)' を指すことができるはずだと思います - しかし、私はそれを正しい方法でやっているとは思えません.

誰でも光を当てることができますか、私はそれを理解し、解決策を明らかにしたいと思っています!!

* アップデート *

私は今、validate.custom 部分の次のコードが機能するはずだと信じるようになりました。

ただし、アーキテクチャに問題があるようです。ライブ検証では即時の回答が必要であり、バックグラウンドで ajax が実行されます。私にとってまったく新しい概念である「オブザーバーパターン」を調査する提案がありました-私は通常、CMSのグラフィックデザインと構造側で遊んでいます!

これに戻って機能させる必要があるため、これ以上のヘルプ/説明があれば幸いです!!

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

design-patterns - ユーザー コントロールの一般的な監視パターン

ユーザー コントロール用の一般的な Observer パターンを実装したいと考えています。これを行う最善の方法は何ですか?

A、B、C の 3 つのユーザー コントロールがあります。これらの各ユーザー コントロールは、一連のデータを表します。各コントロールには、表示モード (基本または詳細) の選択があります。サイトの訪問者は、どのモードを選択するかを取得します。いずれかのコントロールで表示モードを変更すると、他のコントロールにもその変更が反映されます。

ここでのキラーは、サイトの訪問者がユーザーコントロールをページに動的に追加できることです。そのため、ページには、それらのいずれも含まれないコントロールの任意の組み合わせが含まれる場合があります。また、複数の aspx ページに掲載される場合もあります。

オブザーバー パターンが最善のアプローチだと考えていましたね。もしそうなら、これを達成するための最良の方法の例はありますか?

ありがとう、リチャード

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

events - イベント アグリゲーターとコレクション

イベントアグリゲーターを使用してビューモデルをビューと同期させたい (ビューモデルはモデルを監視する)。これはモデルに実装するのが非常に簡単で、プロパティのセッターで通知を呼び出すだけです。

ただし、モデルにコレクションがある場合はさらに複雑になります。通知を呼び出すコードはどこにありますか? モデル内のコレクションのインターフェースは何でしょうか? Iリスト?

私が考えた唯一の解決策は、リフレクションを使用してすべての IList フィールドを反復処理し、それらを INotifyCollectionChanged にキャストして、通知を呼び出すイベント ハンドラーを追加する基本クラスから継承することです。

何か案は?

前もってありがとう、エリック。