使用Ajax延迟加载

时间:2013-05-04 21:43:21

标签: php jquery ajax lazy-loading

我创建了一个数据库,我存储了所有图像的名称,以便以后可以检索它。要检索图像的名称,我使用ajax并将其与<img>标记绑定:

$.post('image_name.php',{id:id}, function(data){
   $('#container').html('<img src="img/'+data+'">');
});

一切都很好。但我注意到的是,所有图像同时出现,这使得过程稍微减慢了。因此,我认为处理此问题的最佳方法是使用延迟加载。我想要任何准备显示的数据....但我不知道如何。

Additonal Info:我正在尝试创建缩略图列表。就像Imgur侧边栏(http://imgur.com/gallery/19E2ZAX

一样

1 个答案:

答案 0 :(得分:1)

如果您打算使用左/右按钮创建列表:

  1. 使用ajax获取接下来6张图片的数组。只有名字或ID。
  2. 关于ajax的成功:
    • 为图像数组创建一个循环$(array)。在jquery中,每个人都很好!
    • 在循环周期中为每个图像设置一个时间计时器(http://archive.plugins.jquery.com/project/timers很棒)。使用数组索引*间隔* 1000(1000秒,1秒)
  3. 整个想法是:

    onsuccess:
        $(whatyougotfromajax).each(function(index, value)
        {
            $.oneTime(index * Interval * 1000, function()
            {
                $('#block').append('<img src="sth.php?Id=' + value + '">');
            });
        });
    

    我不确定......不,我确定这不是这样的工作,但你已经有了这个想法