繁体   English   中英

Ajax中的异步和同步XMLHttpRequest

[英]Asynchronous and Synchronous XMLHttpRequest in ajax

我是ajax的新手,并且正在关注Lynda的“ Javascript和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);

}

我的问题是当我通过给参数false(on request.open())执行Synchronous XMLHttpRequest时,我的浏览器按照代码显示“ HELLO WORLD” 100次。但是当我尝试通过给参数true或不提供默认值来做异步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);
}

http://jsfiddle.net/75eLfwz1/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM