圖片、內容延遲加載模式


前幾天在優化網站首頁的過程中,有這樣一個問題,就是圖片加載時間過長,后來在網上查詢,看了圖片延遲加載技術,現在有很多大型門戶類網站首頁都在用,最 具代表性的就是淘寶網,在頁面上圖片比較多的時候,打開一張頁面必然引起與服務器大數據量的交互。尤其是對於高清晰的圖片,占的幾M的空間。 ImageLazyLoad技術就是,當前可是界面的圖片是加載進來的,而不可見頁面(通過滾動條下拉可見)中的圖片是不加載的,這樣勢必會引起速度上質 的提升。

      眼下比較常用的圖片延遲加載技術有四種:kissy(淘寶的JS框架),Jquery 圖片延遲插件,Prototype,YUI2。

一、使用JQuery插件 ,插件名: jquery.lazyload(7kb大小),壓縮后(3kb大小):

1.導入JS插件
<script src="http://jianzi0307.blog.163.com/blog/jquery.js" type="text/javascript"></script>
<script src="http://jianzi0307.blog.163.com/blog/jquery.lazyload.js" type="text/javascript"></script>
2.在你的頁面中加入如下的javascript:
$("img").lazyload();
這將會使所有的圖片都延遲加載。

當然插件還有幾個配置項可供設置:
1.改變threshold
$(“img”).lazyload({ threshold : 200 });
把閥值設置成200 意思就是當圖片沒有看到之前先load 200像素。

2.當然了你也可以通過設置占位符圖片和自定事件來觸發加載圖片事件
復制代碼
代碼如下:

$("img").lazyload({
placeholder : "img/grey.gif",
event : "click"
});

3.可以通過定義effect 參數來定義一些圖片顯示效果
復制代碼
代碼如下:

$("img").lazyload({
placeholder : "img/grey.gif",
effect : "fadeIn"
});

LazyLoad(延遲加載)技術不僅僅用在對網頁中圖片的延遲加載,對數據同樣可以,Google Reader和Bing圖片搜索就把LazyLoad技術運用的淋漓盡致;

缺陷:
1.與Ajax技術的沖突;
2.圖片的延遲加載,遇到高度特別高的圖片,會出現停止加載的問題;
3.寫代碼不規范的同學要注意了,不管由於什么原因,如果您的頁面中,img標簽的height屬性未定義,那么我建議您最好不要使用ImageLazyLoad

二、使用淘寶的延遲加載技術:(2kb大小)
http://a.tbcdn.cn/kissy/1.0.0/build/imglazyload/imglazyload-min.js
調用方法也是很簡單的:
<script src="http://a.tbcdn.cn/kissy/1.0.0/build/imglazyload/imglazyload-min.js" type="text/javascript"></script> <script type="text/javascript">// <![CDATA[KISSY.ImageLazyload();//]]></script>
注:該腳本依賴 yahoo-dom-event, 頁面中需要加載 yui 2.x,你也可以直接引用下面的地址:
<script src="http://kissy.googlecode.com/svn/trunk/third-party/yui2/yahoo-dom-event/yahoo-dom-event.js" type="text/javascript"></script>

配置參數如下:

<script type="text/javascript">
KISSY.ImageLazyload({
mod: "manual", // 延遲模式。默認為 auto
diff: 200 // 當前屏幕下多遠處的圖片開始延遲加載。默認兩屏外的圖片才延遲加載
});
</script>

manual 模式時,需要手動將頁面中需要延遲加載的圖片的 src 屬性名更改為 data-lazyload-src. 比如 SRP 頁面,寶貝列表的后20個圖片延遲加載。 輸出時,html 代碼為:
<img data-lazy-src="http://jianzi0307.blog.163.com/blog/path/to/img" alt="something" />

如果您是Jquery,Prototype等這些JS框架的粉絲,他們都有定制的LazyLoad Plugin提供:http://www.appelsiini.net/projects/lazyload

LazyLoad(延遲加載)技術不僅僅用在對網頁中圖片的延遲加載,對數據同樣可以。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM