setInterval(function () {
$("ul").empty();
var tag = $("#add").data('tag'), maxid = $("#add").data('maxid');
$.ajax({
type: 'GET',
url: 'ajax.php',
data: {
tag: tag,
max_id: maxid
},
dataType: 'json',
cache: false,
success: function(data) {
// Output data
$.each(data.images, function(i, src) {
$('ul#photos').append('<li><img src="' + src + '"></li>');
});
// Store new maxid
$('#add').data('maxid', data.next_id);
}
});
}, 20000);
我正在尝试以 1 秒的间隔一次加载 20 张图片。但是,对于只有 27 张照片的特定主题标签。它加载得很好,直到最后 20 个,即使我将其限制为一个,它也会一次加载。它总是最后 20 个。
如何为最后 1 个一次加载 20 个?
如果不查看您的 PHP 脚本,很难确切地说,但我可以说的是,您正在迭代返回的照片数组(使用 $.each(,并将返回照片数组中的每张照片附加到您的 DOM。
所以有一件事是,不要遍历照片数组,而只访问照片数组的第一个索引(data.images[0](。如果您无法弄清楚为什么服务器端代码返回的照片比您想要的多(您应该调查(,只需抓取所有照片并设置一个超时,在您发出网络请求后每 20 秒添加一张返回的照片。这也意味着更少的网络请求,所以也许这对你来说是一个很好的解决方案。
如果你想发出多达 20 个 ajax 请求(可能不是最佳解决方案(,并且你得到的图像比你想要的要多,那么你的 PHP 需要被调查,现在你只向我们展示客户端代码。