XMLHttpRequestを同期モードで動かして既に送られていた非同期リクエストのレスポンスが同期リクエストのレスポンス前に返ってきたらどうなるかのブラウザ毎の挙動を調べました。
何を言っているのかわかりにくいですが

非同期リクエスト

同期リクエスト

非同期リクエストのレスポンス

同期リクエストのレスポンス

の形になった場合どうなるか。

  • chrome
    同期リクエストのレスポンス処理が優先される。(個人的には一番望ましい形)
  • FireFox
    同期リクエスト中も関係無くレスポンスが届いた瞬間に処理される。
  • IE
    同期リクエスト中は処理されないがサーバーからレスポンスが届いた順に処理される。

つまり、この辺りの制御は自前で行うしかないってことですね。
Ajaxで決済処理を行うときなどは同期処理を使っているのですが、その間に別の処理が入ると嫌なので上手くブラウザが処理してくれないかなと思っていたらやっぱりダメでした。

※作成から2年前(829日経過)の記事です。内容が古い可能性があります。
東京都東日本橋の株式会社プレスマンPRESSMAN*Tech