【发布时间】:2023-03-09 10:05:01
【问题描述】:
我正在使用 jQuery 发送 AJAX 请求,从服务器检索数据。
然后将该数据附加到一个元素。这应该发生 5 次,但它总是随机发生 3、4 或 5 次。基本上,有时循环会跳过 AJAX 请求,但大多数时候它会捕获它。我如何确保它每次完成请求五次?以及这种跳过 AJAX 请求的随机行为背后的原因是什么?(旁注。我检查了请求错误,但它从未提醒过请求失败)
这是我的 JS:
while (counter < 6) {
$.ajax({
url:'http://whisperingforest.org/js/getQuote.php',
async: false,
dataType: 'jsonp',
success:function(data){
$('.quoteList').append('<li>' + data +'</li>');
totalQuotes++;
}
});
counter++;
}
附:这发生在按下按钮时。
【问题讨论】:
-
网络标签上有什么?是否发送了 5 个 http 请求?
-
为什么要发出 6 个请求,而不是在一个请求中获取所需的所有数据,然后将其拆分为 6 个列表项?
-
刚刚检查了网络选项卡(不知道这存在:P)...它发出所有请求,但大约 30% 的时间会收到“500 内部服务器错误”。 .. && 我提出 6 个单独的请求,因为.. 这是我第一次使用 AJAX,我不知道如何从多行中提取信息,而不是从单行的回显字符串中提取信息。
-
看来您已经发现了问题。
-
在多行的事情上,假设你在服务器端调用
json_encode,只需传入一个非关联数组,它就会返回一个JS数组的JSON,例如json_encode(array(1,2,3))将返回[1,2,3],然后您可以在客户端进行迭代。
标签: javascript jquery ajax