私は非常に奇妙なものを見つけました。私は非常に驚いています。誰かが以前にそれを見つけたのか、何が起こっているのか想像できたのでしょうか。
ASP.NET MVC3 チェス アプリケーションがあります。現在、ユーザーが参加して他のユーザーにマッチの招待状を送信するためのロビーを開発しています。
ロビーのユーザーは、HttpContext.Application に含まれるクラスを通じて追跡されます。ロビーの URL へのユーザー アクセスがユーザーのリストに追加され、ユーザーがページを離れると、onUnload イベントから起動された AJAX同期呼び出しが行われます。彼をリストから削除します。
ページ上では、JavaScript コードが定期的にサーバーに現在のユーザーのリストを要求し、クライアント ページで更新します。
これですべて問題なく動作しますが、ロビー ページをリロードすると、ログインしているユーザーがリストから消えていることがわかります。実行を確認したところ、ページを更新すると、ユーザーを削除する AJAX 呼び出しの前にロビーをロードするコントローラーが起動することがわかりました。そのため、コントローラーは最初にユーザーをリストに追加しようとします (しかし、彼は既にリストにいるので、彼はは追加されません)、その後すぐに削除されます。
更新時に onUnload イベントが実行され、戻った後にページが再度読み込まれると思いましたが、期待どおりの順序で発生していないようです。
アイデア/提案はありますか?ありがとう。