So-net無料ブログ作成

広告

[メモ]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だったけど無視)
11234の間はブラウザの操作が出来た。
③の時、IE、Fxとも、
ブラウザが固まった後4と表示された。
①の時、IEは②と同じ結果、Fxは③と同じ結果に。

第3引数を省略した場合、IEはtrue、Fxはfalseとなっている様子。

XmlHttpRequestってネットからサンプルを拾ってきて使い始めたけど、デフォルトはtrueってあったから省略していた。今まで作ったページは非同期である必要が無く(すぐレスポンスがある)、同期非同期を気にしたことがなかった。

引数は省略しない方がいいと思った。。。

open( HTTPメソッド, リクエスト先URL[, 非同期の有無[, ユーザー名[, パスワード]]] )

readyState
0:オブジェクト生成・未初期化状態(まだopenメソッドが呼ばれていません)
1:リクエスト準備中(まだsendメソッドは呼ばれていません)
2:リクエスト送信中(まだstatusとレスポンスヘッダがありません)
3:データ受信中(レスポンスヘッダ取得)
4:データ受信完了

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。