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);
我试图以20秒的间隔一次加载1张图片。但是对于只有27张照片的特定标签。它会很好地加载到最后20个,即使我将它限制为只有一个,它也会加载到一个。它始终是最后的20个。
如何为最后20个加载1个?
答案 0 :(得分:0)
如果没有查看PHP脚本,很难准确说出来,但我可以说你正在迭代一系列返回的照片(使用$ .each)并附加返回数组中的每张照片照片到您的DOM。
所以有一点是,不要遍历照片数组,只需访问照片数组的第一个索引(data.images [0])。如果你无法弄清楚为什么你的服务器端代码会返回比你想要的更多的照片(你应该调查),只需抓住所有照片并设置一个超时时间,每隔20秒就会添加一张返回的照片&#39 ; ve为所有人提出了网络请求。这也意味着更少的网络请求,所以它可能是一个很好的解决方案。
如果你想要最多20个ajax请求(可能不是最佳解决方案),并且你得到的图像比你想要的多,那么你的PHP需要进行调查,而你现在只是向我们展示客户端代码。