Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax中的异步和同步XMLHttpRequest_Javascript_Ajax_Asynchronous_Xmlhttprequest_Synchronous - Fatal编程技术网

Javascript ajax中的异步和同步XMLHttpRequest

Javascript ajax中的异步和同步XMLHttpRequest,javascript,ajax,asynchronous,xmlhttprequest,synchronous,Javascript,Ajax,Asynchronous,Xmlhttprequest,Synchronous,我是ajax新手,正在学习Lynda的“Javascript和ajax”教程 我有一个名为“data”的文本文档,其中保存了文本HELLO WORLD 我的index.html文件是: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>JavaScript AJAX</title> </head> <

我是ajax新手,正在学习Lynda的“Javascript和ajax”教程

我有一个名为“data”的文本文档,其中保存了文本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-AJAX
我的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);

}
for(变量i=0;i<100;i++){
var request=new XMLHttpRequest();
open('GET','data.txt',false);
request.send();
控制台日志(请求);
document.writeln(request.responseText);
}
我的问题是,当我通过提供参数false(on request.open())来执行同步XMLHttpRequest时,我的浏览器会按照代码显示100次“HELLO WORLD”。但当我尝试通过提供参数true或nothing作为默认值来执行异步XMLHttpRequest时,浏览器不会显示任何内容。为什么会这样


有人能帮我吗?我掌握了一些关于异步和同步请求的知识。这些与上述代码的不同行为有什么关系?我是否遗漏了什么?

异步调用不会阻止后续的代码执行。在您的示例中,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);
}
for(变量i=0;i<100;i++){
var req=新的XMLHttpRequest();
请求addEventListener('load',complete,false);
请求打开('GET','/echo/json/',true);
请求发送();
}
功能完成(e){
console.log(this.responseURL);
}