国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

實(shí)現(xiàn)圖片懶加載(lazyload)

renweihub / 3450人閱讀

摘要:當(dāng)頁面圖片很多時(shí),頁面的加載速度緩慢,幾鐘內(nèi)頁面沒有加載完成,也許會(huì)失去很多的用戶。指向一張默認(rèn)的圖片,否則當(dāng)為空時(shí)也會(huì)向服務(wù)器發(fā)送一次請(qǐng)求。這樣便實(shí)現(xiàn)了懶加載。我想實(shí)現(xiàn)限制觸發(fā)頻率,來優(yōu)化性能。

本文標(biāo)題:實(shí)現(xiàn)圖片懶加載(lazyload)
文章作者:Jake
發(fā)布時(shí)間:2016-11-26, 18:46:34
最后更新:2016-11-28, 17:12:59
原始鏈接:http://i.jakeyu.top/2016/11/26/實(shí)現(xiàn)圖片懶加載/
許可協(xié)議: "署名-非商用-相同方式共享 4.0" 轉(zhuǎn)載請(qǐng)保留原文鏈接及作者。

懶加載的意義(為什么要使用懶加載)

對(duì)頁面加載速度影響最大的就是圖片,一張普通的圖片可以達(dá)到幾M的大小,而代碼也許就只有幾十KB。當(dāng)頁面圖片很多時(shí),頁面的加載速度緩慢,幾S鐘內(nèi)頁面沒有加載完成,也許會(huì)失去很多的用戶。

所以,對(duì)于圖片過多的頁面,為了加速頁面加載速度,所以很多時(shí)候我們需要將頁面內(nèi)未出現(xiàn)在可視區(qū)域內(nèi)的圖片先不做加載, 等到滾動(dòng)到可視區(qū)域后再去加載。這樣子對(duì)于頁面加載性能上會(huì)有很大的提升,也提高了用戶體驗(yàn)。

原理

將頁面中的img標(biāo)簽src指向一張小圖片或者src為空,然后定義data-src(這個(gè)屬性可以自定義命名,我才用data-src)屬性指向真實(shí)的圖片。src指向一張默認(rèn)的圖片,否則當(dāng)src為空時(shí)也會(huì)向服務(wù)器發(fā)送一次請(qǐng)求。可以指向loading的地址。

注:圖片要指定寬高


當(dāng)載入頁面時(shí),先把可視區(qū)域內(nèi)的img標(biāo)簽的data-src屬性值負(fù)給src,然后監(jiān)聽滾動(dòng)事件,把用戶即將看到的圖片加載。這樣便實(shí)現(xiàn)了懶加載。

代碼

在寫代碼前,需要了解各種高度。先看這篇文章scrollTop,offsetTop,scrollLeft,offsetLeft


    
    Document
    




    
    
    
    
    
    
    
    
    
    
    

JavaScript
jQuery
使用節(jié)流函數(shù)進(jìn)行性能優(yōu)化

如果直接將函數(shù)綁定在scroll事件上,當(dāng)頁面滾動(dòng)時(shí),函數(shù)會(huì)被高頻觸發(fā),這非常影響瀏覽器的性能。

我想實(shí)現(xiàn)限制觸發(fā)頻率,來優(yōu)化性能。

節(jié)流函數(shù):只允許一個(gè)函數(shù)在N秒內(nèi)執(zhí)行一次。下面是一個(gè)簡(jiǎn)單的節(jié)流函數(shù):

// 簡(jiǎn)單的節(jié)流函數(shù)
//fun 要執(zhí)行的函數(shù)
//delay 延遲
//time  在time時(shí)間內(nèi)必須執(zhí)行一次
function throttle(fun, delay, time) {
    var timeout,
        startTime = new Date();

    return function() {
        var context = this,
            args = arguments,
            curTime = new Date();

        clearTimeout(timeout);
        // 如果達(dá)到了規(guī)定的觸發(fā)時(shí)間間隔,觸發(fā) handler
        if (curTime - startTime >= time) {
            fun.apply(context, args);
            startTime = curTime;
            // 沒達(dá)到觸發(fā)間隔,重新設(shè)定定時(shí)器
        } else {
            timeout = setTimeout(fun, delay);
        }
    };
};
// 實(shí)際想綁定在 scroll 事件上的 handler
function lazyload(event) {
        for (var i = n; i < imgNum; i++) {
            if (img.eq(i).offset().top < parseInt($(window).height()) + parseInt($(window).scrollTop())) {
                if (img.eq(i).attr("src") == "default.jpg") {
                    var src = img.eq(i).attr("data-src");
                    img.eq(i).attr("src", src);

                    n = i + 1;
                }
            }
        }
    }
// 采用了節(jié)流函數(shù)
window.addEventListener("scroll",throttle(lazyload,500,1000));

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/115358.html

相關(guān)文章

  • 如何實(shí)現(xiàn)一個(gè)圖片加載

    摘要:幾個(gè)月前實(shí)現(xiàn)的一個(gè)圖片懶加載庫,地址。而這是我們可以優(yōu)化的地方,這里我們使用函數(shù)去抖,調(diào)整后的代碼如下至此,也算是實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的圖片懶加載庫了,如有不足之處歡迎指正,大家一起交流交流 幾個(gè)月前實(shí)現(xiàn)的一個(gè)圖片懶加載庫lazyload.js,github 地址。 需要實(shí)現(xiàn)的效果 相信大家都在網(wǎng)頁中體驗(yàn)過圖片懶加載,它應(yīng)該有這樣的效果:當(dāng)圖片進(jìn)入我們的可視區(qū)時(shí),加載這些圖片。其原因相信大家...

    silenceboy 評(píng)論0 收藏0
  • 實(shí)現(xiàn)圖片加載(lazyload)

    摘要:當(dāng)頁面圖片很多時(shí),頁面的加載速度緩慢,幾鐘內(nèi)頁面沒有加載完成,也許會(huì)失去很多的用戶。指向一張默認(rèn)的圖片,否則當(dāng)為空時(shí)也會(huì)向服務(wù)器發(fā)送一次請(qǐng)求。這樣便實(shí)現(xiàn)了懶加載。我想實(shí)現(xiàn)限制觸發(fā)頻率,來優(yōu)化性能。 本文標(biāo)題:實(shí)現(xiàn)圖片懶加載(lazyload)文章作者:Jake發(fā)布時(shí)間:2016-11-26, 18:46:34最后更新:2016-11-28, 17:12:59原始鏈接:http://i....

    Developer 評(píng)論0 收藏0
  • 實(shí)現(xiàn)圖片加載(lazyload)

    摘要:當(dāng)頁面圖片很多時(shí),頁面的加載速度緩慢,幾鐘內(nèi)頁面沒有加載完成,也許會(huì)失去很多的用戶。指向一張默認(rèn)的圖片,否則當(dāng)為空時(shí)也會(huì)向服務(wù)器發(fā)送一次請(qǐng)求。這樣便實(shí)現(xiàn)了懶加載。我想實(shí)現(xiàn)限制觸發(fā)頻率,來優(yōu)化性能。 本文標(biāo)題:實(shí)現(xiàn)圖片懶加載(lazyload)文章作者:Jake發(fā)布時(shí)間:2016-11-26, 18:46:34最后更新:2016-11-28, 17:12:59原始鏈接:http://i....

    lushan 評(píng)論0 收藏0
  • 圖片加載的前世今生

    摘要:配置項(xiàng)配置項(xiàng)中的參數(shù)有以下三個(gè)所監(jiān)聽對(duì)象的具體祖先元素,默認(rèn)是計(jì)算交叉狀態(tài)時(shí),將附加到祖先元素上,從而有效的擴(kuò)大或者縮小祖先元素判定區(qū)域設(shè)置一系列的閾值,當(dāng)交叉狀態(tài)達(dá)到閾值時(shí),會(huì)觸發(fā)回調(diào)函數(shù)。 一、前言 ??通常情況下,HTML 中的圖片資源會(huì)自上而下依次加載,而部分圖片只有在用戶向下滾動(dòng)頁面的場(chǎng)景下才能被看見,否則這部分圖片的流量就白白浪費(fèi)了。 ??所以,對(duì)于那些含有大量圖片資源的網(wǎng)...

    zhaot 評(píng)論0 收藏0
  • vue 圖片加載 vue-lazyload

    摘要:在項(xiàng)目中,如果出現(xiàn)大圖一時(shí)半會(huì)加載不出來的情況確實(shí)很丑。如果是那種沒有給定寬高靠圖片撐起來的等圖片加載出來再把內(nèi)容擠下去的用戶體驗(yàn)效果非常差。如果對(duì)您有幫助請(qǐng)動(dòng)動(dòng)鼠標(biāo)右下方給我來個(gè)贊,您的支持是我最大的動(dòng)力。在項(xiàng)目中,如果出現(xiàn)大圖一時(shí)半會(huì)加載不出來 的情況確實(shí)很丑。如果是那種沒有給定寬高 靠圖片撐起來的等圖片加載出來 再把內(nèi)容擠下去的用戶體驗(yàn)效果非常差。 在vue中 使用vue-lazylo...

    番茄西紅柿 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

renweihub

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<