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

| コメント(0) | トラックバック(0)

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に関する注意事項を集めたページ(英語)

トラックバック(0)

トラックバックURL: http://www.kazu.tv/blog-mgr/mt-tb.cgi/626

コメントする

このブログの作者

名前:kazu
仕事:IT関係の何でも屋
メール:kazu 後幕 kazu どと tv
詳しくはこの辺

このブログ記事について

このページは、kazuが2007年7月 4日 10:10に書いたブログ記事です。

ひとつ前のブログ記事は「住所変更」です。

次のブログ記事は「Java HotSpot Server VM, Tomcat」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ