【发布时间】:2019-12-24 12:23:15
【问题描述】:
我有一张将近 300 多行的表格。在页面加载时,我需要调用 ajax 请求以通过数据库中的row_id 更新每一行的status。当Success 在相应行的列中附加响应时。之后为下一行运行 ajax,依此类推。
我的尝试
$('table tbody tr').each(function(){
var tracking = $(this).attr('id');
setInterval(function(){
$.ajax({
...
success: function(){
//append here
}
});
}, 1000);
问题
这样,当页面加载时,它会为几乎所有行创建请求,如果记录太多,页面会卡住。
有没有简单的方法在每一行上一个一个地执行 ajax?
【问题讨论】:
-
你可以试试 jquery.queue() stackoverflow.com/questions/4785724/…
-
is there any easy way to execute ajax one by one on each row?,是的,循环执行,但请注意这是一个非常糟糕的主意。在您的示例中,您将向您的服务器发出 300 个请求并对其进行泛洪,从而有效地让您的用户对您进行 DDOS。在单个请求中检索所有行所需的信息会更好。 -
另外,由于您使用的是 ajax,
setInterval是微不足道的/不必要的。 -
为什么不收集 JSON 数组中的所有 id,然后使用该数组发送单个请求并获取另一个 JSON 数组及其所有状态响应?
标签: javascript jquery ajax