有一个代码,在某个时间应该向脚本发出请求并返回数据,等等 20 次。但问题是,当按钮按下时,等待20秒,直到整个循环结束,然后显示所有工作结果,我需要它实时显示数据,脚本返回答案,显示它,等待一段时间并再次执行并显示响应。SetInterval
我不能使用它,因为延迟将取决于脚本返回的值,它会不断变化。如何实现数据的实时展示?一切都必须是顺序的,必须执行一个请求,我见过的函数并行执行它们。
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds) {
break;
}
}
}
function SendParams(i) {
$.ajax({
url: "test.php",
type: "get",
async: false,
success: function(data) {
$('p').append(i + ' ' + data + '<br>');
}
});
}
$("button").click(function() {
var j;
for (j = 0; j < 20; j++) {
SendParams(j);
sleep(1000);
}
});
在成功方法 setTimeout 20 秒内处理一个函数,该函数的主体是您的显示逻辑 + 开始一个新请求。
像这样的东西,如果我理解正确的话