Instagram根据标签抓取照片


Instagram grabbing photos based on hashtag

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 需要被调查,现在你只向我们展示客户端代码。