IEのXMLHttpRequestでコネクションを閉じない

Ajaxが一般的になってきたけど、構築中のシステムでIEのXMLHttpRequestに関するバグ(あるいは控えめに言っても問題点)に悩まされた。
問題の概要はここのページに簡潔に書かれているけど、一応書いてみる。
前提として、IEのデフォルトではHTTPの同時接続数が2。
1.あるページがwindow.openで子ウィンドウを開く。
2.子ウィンドウがXMLHttpRequestでサーバーに問い合わせ。(HTTPの接続数のカウンタが+1)
3.サーバーから返答が返ってくる前に子ウィンドウを閉じる。(HTTPの接続数のカウンタが減らない
4.1〜3を繰り返すとHTTPの同時接続数の上限(2)に達し、それ以降のAjaxリクエストを行わなくなる。
解決策
・親ウィンドウも含め、全てのIEのウィンドウを閉じれば、次からは問題なし(消極的な解決策)
・レジストリで同時接続数を増やす(推奨されてない→MSのページ
・サイトの構成を見直す(子ウィンドウからAjaxを使用しない等)
子ウィンドウのoncloseで、abort()メソッドを呼び出すというのを試した人もいるけど、問題は解決しなかったみたい。英語だけどこのページ
IE+Ajaxに関する注意事項を集めたページ(英語)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です