【发布时间】:2017-07-27 10:18:28
【问题描述】:
有没有方便的方法在 Javascript 中发出 XMLHTTP 请求?发送前等待例如 3 秒?我有一个数组全名
var items = [
{ url: "www.google.com/getChocolate", name: "Chocholate"},
{ url: "www.google.com/getCake", name: "Cake"},
{ url: "www.google.com/getCookie", name: "Cookie"},
];
for (var i = 0; i < items.length; i++) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
var data;
data = JSON.parse(xhr.responseText);
// processing data here
}
};
xhr.open("GET", items[i].url, false);
xhr.send();
// I somehow have to force to send the request for each item only every 3 seconds
}
对于他们每个人,我想从服务器接收 JSON 响应,但如果我发送请求过于频繁,它会禁止我一段时间,所以我需要每 3 秒发送一次,等待响应,处理响应并开始一个新的。
我想我必须让它同步,所以我已经在xhr.open 中放置了错误参数。
【问题讨论】:
-
setTimeout是你要找的。span> -
“我必须让它同步” ...永远不要那样做!它会阻塞整个 UI 并被弃用,因为这是一种糟糕的做法
-
如果我在循环中为请求添加
setTimeout,它会等待给定的时间并一次发送所有项目的请求,我需要它们一一发送。
标签: javascript json foreach xmlhttprequest delay