gpt4 book ai didi

jquery - for循环..等待AJAX​​请求

转载 作者:行者123 更新时间:2023-12-01 06:22:59 26 4
gpt4 key购买 nike

我正在使用下面的代码迭代一系列日期。每次,我都会发出 ajax 请求并返回 xml 数据,然后调用一个函数在页面上的一行上显示一系列 div。问题是我的循环甚至在第一次 ajax 调用之前就已完成,如何保持 for 循环直到我的 ajax 请求和函数完成?非常感谢任何帮助! ,谢谢

        // Start of the loop for the date range selected    

for(loopTime = startTime; loopTime <= endTime; loopTime += 86400000) {

// Produce the day from the date
loopDate=new Date(loopTime)
day = loopDate.getDate() ; if (day < 10) { day = "0" + day } ;
mon = loopDate.getMonth()+1 ; if (mon < 10) { mon = "0" + mon } ;
year = loopDate.getFullYear()
epDate = year + "-" + mon + "-" + day

// Run the XML Query ONCE ONLY
$.ajax({
type: "POST",
url: "php_assoc/jobs_today.php",
data: { OnThisDate : epDate },
dataType: "xml",
success:returnedXMLdata
});

}// for loop date




function returnedXMLdata(data) {
script ....

最佳答案

您的问题可能不是循环提前完成(这实际上是一件好事),而是所有 AJAX 请求几乎立即被触发。

如果您希望将 AJAX 请求排入队列,则需要使用事件处理程序本身进行循环迭代,而不使用 for:

var loopTime = startTime;
(function iterate() {
$.ajax(...).always(function() {
loopTime += 86400 * 1000;
if (loopTime <= endTime) {
iterate();
}
});
})();

关于jquery - for循环..等待AJAX​​请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15298381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com