/ / ajaxの非同期および同期XMLHttpRequest - javascript、ajax、asynchronous、xmlhttprequest、synchronous

非同期および同期XMLHttpRequestのajax - javascript、ajax、asynchronous、xmlhttprequest、synchronous

私はAjaxを初めて使っていて、Lynda "Javascript and Ajax"チュートリアルに従っています。これは私が遭遇した問題です。

私はそれにテキストHELLO WORLDが保存されている "データ"というテキスト文書を持っています。

私のindex.htmlファイルは:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>JavaScript AJAX</title>
</head>
<body>
<script src="script.js"></script>
</body>
</html>

私のjavascriptファイルは:

for(var i = 0; i < 100; i++){
var request = new XMLHttpRequest();
request.open("GET", "data.txt",false);
request.send();
console.log(request);
document.writeln(request.responseText);

}

私の質問は私が同期を行うときですXMLHttpRequestを引数としてfalse(request.open())を指定すると、ブラウザは "HELLO WORLD"をコードごとに100回表示しますが、Asynchronous XMLHttpRequestを引数としてtrueまたは何も指定しないで、ブラウザは何も表示しません。それはなぜそうですか?

誰もがこれについて私を助けてくれますか?私は、非同期と同期リクエストに関するいくつかの知識を掴んでいます。これらは上記のコードとは何か異なった働きをしていますか?

回答:

回答№1は2

非同期呼び出しは、後続のコードの実行を妨げません。この例では、非同期要求が完了する前にconsole.logが実行されています。

上のコードを参考にして、実際の例を示します。

for (var i = 0; i < 100; i++) {
var req = new XMLHttpRequest();

req.addEventListener("load", complete, false);
req.open("GET", "/echo/json/", true);
req.send();
}

function complete(e) {
console.log(this.responseURL);
}

http://jsfiddle.net/75eLfwz1/