[メモ]XmlHttpRequest openメソッドの第3引数 [コンピュータ]
XmlHttpRequestのopenメソッドの第3引数のデフォルト値がIEとFirefoxで違うっぽい。
こんなコードで実験してみた。
var xmlhttp = createXmlHttpRequest(); if (xmlhttp) { xmlhttp.onreadystatechange = function() { var elem = document.getElementById('result'); elem.innerHTML = elem.innerHTML + "" + xmlhttp.readyState; } // HTTPリクエストを送る var uri = "sleep.php"; // レスポンスに3秒ほど //xmlhttp.open('GET', uri); ① //xmlhttp.open('GET', uri, true); ② xmlhttp.open('GET', uri, false); ③ xmlhttp.send(null); }
IE6とFirefox2.0.0.12で実験
結果
②の時、IE、Fxとも、
11と表示され234と表示された。(Fxは2334だったけど無視)
11と234の間はブラウザの操作が出来た。
③の時、IE、Fxとも、
ブラウザが固まった後4と表示された。
①の時、IEは②と同じ結果、Fxは③と同じ結果に。
第3引数を省略した場合、IEはtrue、Fxはfalseとなっている様子。
XmlHttpRequestってネットからサンプルを拾ってきて使い始めたけど、デフォルトはtrueってあったから省略していた。今まで作ったページは非同期である必要が無く(すぐレスポンスがある)、同期非同期を気にしたことがなかった。
引数は省略しない方がいいと思った。。。
open( HTTPメソッド, リクエスト先URL[, 非同期の有無[, ユーザー名[, パスワード]]] ) readyState 0:オブジェクト生成・未初期化状態(まだopenメソッドが呼ばれていません) 1:リクエスト準備中(まだsendメソッドは呼ばれていません) 2:リクエスト送信中(まだstatusとレスポンスヘッダがありません) 3:データ受信中(レスポンスヘッダ取得) 4:データ受信完了
コメント 0