[英]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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.