jQuery lazyload 的重復(fù)加載錯(cuò)誤以及修復(fù)方法
更新時(shí)間:2010年11月19日 16:52:34 作者:
jQuery lazyload是一款延遲加載圖片的的插件,原意是按需加載,當(dāng)圖片出現(xiàn)在可視區(qū)域時(shí)進(jìn)行加載,但是官方的插件經(jīng)過firebug的檢測(cè)可知,并不能節(jié)省流量開支,反而有重復(fù)加載的現(xiàn)象。
分析代碼也可以知道。
最主要的原因是 寫在頁面上的 <img src="the_big_img_toLoad.jpg" />一經(jīng)加載,就去向服務(wù)器申請(qǐng)圖片地址,加載大圖片。
如果想實(shí)現(xiàn)原定的效果,則 寫在頁面上的待加載地址 必須不能是大圖片的地址,而我們可以將真正的圖片地址數(shù)據(jù) 存儲(chǔ)在alt屬性中。
正確的例子如下:
<a href="#nogo"><img alt="http://www.dbjr.com.cn/comstyles/img200-150-3.jpg" src="http://sc.jb51.net/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.dbjr.com.cn/comstyles/img200-150-4.jpg" src="http://sc.jb51.net/style/img/spacer.gif" alt="200-150" /></a>
對(duì)原來的 jquery.lazyload.js我們也需要做一點(diǎn)改動(dòng):
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="lazyload.js"></script>
<script type="text/javascript"> //初始化代碼
$(document).ready(function(){
$("#lazy1 img,#lazy2 img").lazyload({
placeholder : "http://sc.jb51.net/style/img/spacer.gif",
effect : "fadeIn"
});
});
</script>
完整實(shí)例如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標(biāo)題文檔</title>
<style type="text/css">
img{ display:block; border:2px solid #ccc; margin:0 0 10px;}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="lazyload.js"></script>
<script type="text/javascript"> //初始化代碼
$(document).ready(function(){
$("#lazy1 img,#lazy2 img").lazyload({
placeholder : "http://qsl.cn/style/img/spacer.gif",
effect : "fadeIn"
});
});
</script>
</head>
<body>
<div style=" height:900px; width:400px; background:#eee;">
<a href="#nogo"><img src="http://www.titan24.com/comstyles/img200-150-2.jpg" alt="200-150" /></a>
第一屏高度為900px,滾動(dòng)到下面的時(shí)候,相應(yīng)圖片才開始加載
</div>
<div id="lazy1" style="width:350px; margin-bottom:340px;">
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/ad400-300.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="400-300" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img200-150-1.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img200-150-2.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
</div>
<div id="lazy2" style="width:350px;">
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img200-150-3.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img200-150-4.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img560-300-1.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img560-300-2.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img560-300-3.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img560-300-4.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
</div>
</body>
</html>
測(cè)試可知 是真正的按需加載。而不是像之前,先加載了,滾動(dòng)到相應(yīng)位置 還又加載了一次。
Firebug的眼睛還是雪亮的。
最主要的原因是 寫在頁面上的 <img src="the_big_img_toLoad.jpg" />一經(jīng)加載,就去向服務(wù)器申請(qǐng)圖片地址,加載大圖片。
如果想實(shí)現(xiàn)原定的效果,則 寫在頁面上的待加載地址 必須不能是大圖片的地址,而我們可以將真正的圖片地址數(shù)據(jù) 存儲(chǔ)在alt屬性中。
正確的例子如下:
復(fù)制代碼 代碼如下:
<a href="#nogo"><img alt="http://www.dbjr.com.cn/comstyles/img200-150-3.jpg" src="http://sc.jb51.net/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.dbjr.com.cn/comstyles/img200-150-4.jpg" src="http://sc.jb51.net/style/img/spacer.gif" alt="200-150" /></a>
對(duì)原來的 jquery.lazyload.js我們也需要做一點(diǎn)改動(dòng):
復(fù)制代碼 代碼如下:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="lazyload.js"></script>
<script type="text/javascript"> //初始化代碼
$(document).ready(function(){
$("#lazy1 img,#lazy2 img").lazyload({
placeholder : "http://sc.jb51.net/style/img/spacer.gif",
effect : "fadeIn"
});
});
</script>
完整實(shí)例如下:
復(fù)制代碼 代碼如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標(biāo)題文檔</title>
<style type="text/css">
img{ display:block; border:2px solid #ccc; margin:0 0 10px;}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="lazyload.js"></script>
<script type="text/javascript"> //初始化代碼
$(document).ready(function(){
$("#lazy1 img,#lazy2 img").lazyload({
placeholder : "http://qsl.cn/style/img/spacer.gif",
effect : "fadeIn"
});
});
</script>
</head>
<body>
<div style=" height:900px; width:400px; background:#eee;">
<a href="#nogo"><img src="http://www.titan24.com/comstyles/img200-150-2.jpg" alt="200-150" /></a>
第一屏高度為900px,滾動(dòng)到下面的時(shí)候,相應(yīng)圖片才開始加載
</div>
<div id="lazy1" style="width:350px; margin-bottom:340px;">
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/ad400-300.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="400-300" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img200-150-1.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img200-150-2.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
</div>
<div id="lazy2" style="width:350px;">
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img200-150-3.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img200-150-4.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img560-300-1.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img560-300-2.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img560-300-3.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img560-300-4.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a>
</div>
</body>
</html>
測(cè)試可知 是真正的按需加載。而不是像之前,先加載了,滾動(dòng)到相應(yīng)位置 還又加載了一次。
Firebug的眼睛還是雪亮的。
您可能感興趣的文章:
- jQuery.lazyload+masonry改良圖片瀑布流代碼
- Jquery圖片延遲加載插件jquery.lazyload.js的使用方法
- jquery插件lazyload.js延遲加載圖片的使用方法
- jQuery lazyLoad圖片延遲加載插件的優(yōu)化改造方法分享
- Jquery.LazyLoad.js修正版下載,實(shí)現(xiàn)圖片延遲加載插件
- jquery lazyload延遲加載技術(shù)的實(shí)現(xiàn)原理分析
- 修改jquery.lazyload.js實(shí)現(xiàn)頁面延遲載入
- jquery.lazyload 實(shí)現(xiàn)圖片延遲加載jquery插件
- 詳解jQuery lazyload 懶加載
相關(guān)文章
jQuery Validate驗(yàn)證表單時(shí)多個(gè)name相同的元素只驗(yàn)證第一個(gè)的解決方法
這篇文章主要介紹了jQuery Validate驗(yàn)證表單時(shí)多個(gè)name相同的元素只驗(yàn)證第一個(gè)的問題及解決方法,需要的朋友可以參考下2016-12-12jQuery動(dòng)態(tài)添加li標(biāo)簽并添加屬性和綁定事件方法
下面小編就為大家分享一篇jQuery動(dòng)態(tài)添加li標(biāo)簽并添加屬性和綁定事件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02為jQuery增加join方法的實(shí)現(xiàn)代碼
正在做一個(gè)在線書簽管理的站點(diǎn),有需要這樣一個(gè)功能,把匹配節(jié)點(diǎn)的id或值拼合起來以用來傳遞參數(shù)。2010-11-11jQuery zTree如何改變指定節(jié)點(diǎn)文本樣式
這篇文章主要介紹了jQuery zTree如何改變指定節(jié)點(diǎn)文本樣式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10jQuery實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05解決html-jquery/js引用外部圖片時(shí)遇到看不了或出現(xiàn)403的問題
下面小編就為大家?guī)硪黄鉀Qhtml-jquery/js引用外部圖片時(shí)遇到看不了或出現(xiàn)403的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09