私はAJAX介して2つの別々のチェックを実行しているJavaScriptアプリケーションに取り組んでいます。各チェックの結果によって、動作が異なります。私がここに興味を持っているのは、両方のチェックが成功したときです。私はこれを行うためのいくつかの方法を特定しました。そして、私はSOから、彼らが最善のアプローチであると考えるものについていくつかのフィードバックを得たいと思います。YUIカスタムイベントとsimutaneousアクション
- 同期AJAX呼び出し:これは私が継承したものであり、終了しました。ブラウザとシステムのロックアップを引き起こしますが、単一の実行スレッドで応答の処理を続けることができます。
- デイジーチェーン接続:最初のチェックを実行するためにAJAX呼び出しを行い、それが通過した場合、最初のチェックのコールバックで第2のチェックを行います。 2番目のチェックを処理し、成功すれば成功です。これは最も簡単な解決策ですが、私は2つの小切手を不必要にカップルすることになります。小切手のシリアル化が不要で、パフォーマンスが低下するような気もします。
- カスタムイベント:AJAXは同時に呼び出すの両方をオフに解雇、YUIのEventモジュールとカスタムイベントのユーティリティを使用します。成功事例ごとにカスタムイベントを作成し、AJAXレスポンスを処理するコールバックに成功のチェックごとに適切なイベントをスローします。各イベントのハンドラは、他のイベントにサブスクライブすることができます。スローされた場合、正常に完了しました。
私の質問は、私は賛成です第三のアプローチに関する。私は、ハンドラがイベントだけで接続され、AJAXコールは同時に発生することが好きです。私が知りたいことは、他の誰かがこの方法でこのモジュールを使用したことですか?どのような落とし穴が予想されますか?私は競争状態のために自分自身を設定しているかもしれないと心配 - どのように私はこれを軽減することができますか?そして最後に、これまでにこれを読んだ人には、より良い方法がありますか?私のリストは網羅的ではありませんか、または根本的に欠陥がありますか?建設的な批判やコメントは歓迎する以上のものです。
編集:サーバーのリクエストはセッションを使用しますが、それらは互いに無関係でセッションデータを書きませんので、サーバーでパラレルに実行される理由はありません(PHPセッションには制限がありません。知りません)。サーバー側のチェックも行っていますが、特定の重要なイベントが発生する前に、直前にサーバーに確認して、まれなイベントでユーザーに何か変更があったことを知らせる必要があります。
私はあなたの質問/答えを言っていたので、私は私の元の質問に編集して、それが含まれています。 –