2010-01-31 98 views
21

我目前正在重新设计我的网站,并一直在研究使用JavaScript和jQuery。这是我到目前为止:http://www.tedwinder.co.uk/gallery2/jQuery无限滚动/懒加载

我的愿景是将所有照片放在一个页面上,用户可以像现在一样滚动浏览。但是,我了解在一个页面上使用50个以上的大图像并且考虑使用无限滚动和延迟加载的局限性和影响,我知道只有当用户访问它们或者点击“更多”链接?

所以,我的问题是:这是否会减少页面加载,我将如何去实现无限滚动/延迟加载,并且这会有效地工作,或者你能想到更有效的方法吗?

感谢, 特德

+4

哇,你有来自未来的照片? – Gumbo 2010-01-31 13:59:40

+1

该网站尚未正式发布,所以我只是使用测试日期。 – Ted 2010-01-31 15:06:21

回答

11

这是jQuery的一个很好的插件,处理图像延迟加载。低于倍

http://www.appelsiini.net/projects/lazyload

图像不会被加载,直到它们被滚动到视图。

它会减少您的网站的带宽,但如果你没有很多的流量它不会有很大的区别。

对于这种技术在使用中的一个例子,看看http://mashable.com/

+0

从http://jquery.com/下载jQuery,然后按照上面链接的页面上的步骤操作。对不起,但我不能解释它比那个页面上的指南更好:)祝你好运! – Pepper 2010-01-31 15:03:04

+0

api.jquery.com也是一个很好的例子(非常合适)。任何页面的整个评论部分都是懒洋洋地加载的! – Agos 2010-01-31 15:51:01

+6

可悲的是,这个插件目前没有工作。来自作者:_“Lazy Load目前无法使用,它不能像预期的那样用最新的浏览器工作。”_有人知道可行的替代方案吗? – 2011-06-22 15:51:19

3

你可以试试这个jQuery插件我写了一个使用HTML注释来延迟加载HTML的任意位,包括图片:

jQuery Lazy Loader Blog Post

jQuery Lazy Loader Plugin Page

下面是一个例子:

<pre class=”i-am-lazy” ><!– 
    <img src=”some.png” /> 
–></pre> 

<pre class=”i-am-lazy” ><!– 
    <div>Any, html css img background, whatever. <img src=”some.png” /> </div> 
–></pre> 

<script type=”text/javascript” src=”jquery.lazyloader.js” ></script> 
<script type=”text/javascript” > 
$(document).ready(function() 
{ 
    $(’pre.i-am-lazy’).lazyLoad(); 
}); 
</script> 

所以基本上你用惰性加载一个占位符标签和内部html注释来包装你想要的内容。当占位符在视口中变为可见时,它将被替换为注释内的html字符串。

您可以对占位符使用任何标记,但是我喜欢pre,因为只有里面只有注释才呈现为0维。

希望这会有所帮助! @MW_Collins