gpt4 book ai didi

javascript - 在 while 循环中使用带有 ajax 调用的分页

转载 作者:行者123 更新时间:2023-11-30 08:53:38 24 4
gpt4 key购买 nike

在一个 javascript 函数中,我调用了服务器并获得了 10 条记录的批处理。在获得所有记录之前,我需要这样做。

首先我做了一个 while 循环,在 ajax 调用的错误回调中我将结束 while 循环。

进行到一半时,我开始意识到这行不通,因为 ajax 调用是异步的,因此我会在循环中触发大量请求。我确定有一个标准模式可以执行此操作,但我不知道如何操作。

只要调用不返回错误,我如何在循环中执行 ajax 调用并执行它?我正在构建的伪代码:

var stillRecordsAvailable = true;

while (stillRecordsAvailable) {
// get the next batch of records
$.ajax({
url: '/getrecords.json',
data: {data_set_id: dataset.id},
type: 'GET',
success: function(data, textStatus, xhr) {
// do something
},
error: function(xhr, textStatus, errorThrown) {
// nothing left to do
stillRecordsAvailable = false;
}
});

谢谢你给我指明了正确的方向

最佳答案

您可能只想将 ajax 调用包装在一个在 ajax 成功回调上调用的函数中:

function getRecords(data, textStatus, xhr) {

if (data) {}; // do something...

$.ajax({
url: '/getrecords.json',
data: {data_set_id: dataset.id},
type: 'GET',
success: getRecords
});

}

这仅在您的服务器/API 在没有更多记录存在时返回错误时才有效;然而,这可能不是最好的模式。一种更优雅的跟踪异步事件状态的方法是通过延迟/ promise 模式。 jQuery 有一个很好的实现:http://api.jquery.com/category/deferred-object/

关于javascript - 在 while 循环中使用带有 ajax 调用的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15574931/

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