私の jQuery Web アプリでは、ほとんどイベントを使用しています。
サーバーへの ajax クライアント要求 (名前は「comm」) を実行するためのコンポーネントには、キューがあります。
このキューは Backbone.js コレクションに似ています。
そのため、新しいリクエスト オブジェクトを「comm」のコレクションに入れるたびに、現在進行中のリクエストがある場合、comm オブジェクトは「add」イベントを取得し、「comm」の「worker」メソッドが見えます。誰もいない場合、ワーカー メソッドはリクエストを処理し、最終的にすべてが正常に機能すると、リクエスト オブジェクトで「完了」イベントをトリガーします。
この通信コンポーネントでは、一度に 1 つの要求のみが可能です。リクエスト オブジェクトを「comm」に追加し、「add」イベントがトリガーされ、ワーカー メソッドがすでにリクエストがあることを確認すると、何も起こりません。
私の質問は次のとおりです。この状況では、「イベントインフラストラクチャ」に関して、この未処理のリクエストオブジェクトを処理するための最良のアプローチは何ですか?
今まで私は2つの異なるアプローチをとっていました:
1) 次のことができます: 進行中のリクエストが終了した場合、ワーカー メソッドはコレクション内に未処理のリクエスト オブジェクトがあるかどうかを確認し、それを処理できます。これは単純で、イベントは関与しません。
2) または別の方法: 「追加」イベントが原因でワーカー メソッドが開始され、進行中の要求が既に存在することがわかった場合、次のようなものを実装できます。「この追加イベントに適切に応答できません。戻します。 . 200 ミリ秒後に再度トリガーしてください。その時間があるかもしれません。」
誰かがすでに同様の問題を抱えていて、これに対する非常に優れた解決策を持っているのではないでしょうか?