私は小さなWebベースのIMクライアントを作成していますが、うまくいきますが、いくつかの問題があります。プロトタイプJavaScript Ajax FIFOキュー
システムはPHPとJavaScriptで書かれており、各ページに置かれる認証IDを使用します.AJAX要求が行われると、この認証IDを含める必要があります。完璧なシステムではありませんが、私はそれを変更する能力はありません。
IMシステムは、定期的な実行者(Prototypeライブラリー)を使用して、それが作る2つの定期的な呼び出しがありますされています。このdoesntの変更は非常に頻繁にそれが30秒ごとかそこら に更新されますので、
- 更新の連絡先リストは、
- 新しいメッセージをチェックしてください、これは今のところ5秒後に起こります。 、
定期executorが連絡先リストを更新するために呼び出しを行う、PHP側は、その要求をピックアップ認証IDを確認し、タスクを実行する認証IDを使用して、新しいリスト内を返す:
問題があります後続のリクエストで使用される新しい認証IDとともにJSON形式
最初の関数が返される前に新しいメッセージ(timed)のチェックまたはメッセージの送信(timed)が発生した場合、認証IDはまだ更新されていません。したがって、以前の要求と同じ認証IDを使用します。その認証IDはシステムのPHP側で拒否されます。
リクエストをFIFOスタイルのキューにシリアル化する方法を探しています。これは、メッセージの確認、連絡先の確認、メッセージの送信などのAjaxリクエストをキューにプッシュしてすぐに実行できることを意味します。以前のajax呼び出しが完了しました(100%完了して返されました)