久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    使用jQuery實(shí)現(xiàn)圖片懶加載原理

     feisguan 2018-07-07

    在網(wǎng)頁(yè)中,常常需要用到圖片,而圖片需要消耗較大的流量。正常情況下,瀏覽器會(huì)解析整個(gè)HTML代碼,然后從上到下依次加載<img src="xxx">的圖片標(biāo)簽。如果頁(yè)面很長(zhǎng),隱藏在頁(yè)面下方的圖片其實(shí)已經(jīng)被瀏覽器加載了。如果用戶不向下滾動(dòng)頁(yè)面,就沒有看到這些圖片,相當(dāng)于白白浪費(fèi)了圖片的流量。

    所以,淘寶、京東這些流量非常巨大的電商,商品介紹頁(yè)又必須有大量的圖片,因此,這些頁(yè)面的圖片都是“按需加載”,即用戶滾動(dòng)頁(yè)面時(shí)顯示出來(lái)的時(shí)候才加載圖片。當(dāng)網(wǎng)速非常快的時(shí)候,用戶并不能感知懶加載的動(dòng)作,既省流量又不影響用戶瀏覽。

    本文給出一種利用jQuery實(shí)現(xiàn)圖片懶加載的原理。它的基本思想是:在輸出HTML的時(shí)候,不要直接輸出<img src="xxx",而是輸出如下的img標(biāo)簽:

    <img src="/static/loading.gif" data-src="http://真正的圖片地址/xxx.jpg">
    

    因此,頁(yè)面顯示的圖片是一個(gè)gif加載動(dòng)畫。當(dāng)頁(yè)面滾動(dòng)時(shí),如果圖片出現(xiàn)在屏幕中,就利用jQuery把<img>src屬性替換為data-src的內(nèi)容,瀏覽器就會(huì)實(shí)時(shí)加載。

    JavaScript代碼如下:

    // 注意: 需要引入jQuery和underscore
    $(function() {
        // 獲取window的引用:
        var $window = $(window);
        // 獲取包含data-src屬性的img,并以jQuery對(duì)象存入數(shù)組:
        var lazyImgs = _.map($('img[data-src]').get(), function (i) {
            return $(i);
        });
        // 定義事件函數(shù):
        var onScroll = function() {
            // 獲取頁(yè)面滾動(dòng)的高度:
            var wtop = $window.scrollTop();
            // 判斷是否還有未加載的img:
            if (lazyImgs.length > 0) {
                // 獲取可視區(qū)域高度:
                var wheight = $window.height();
                // 存放待刪除的索引:
                var loadedIndex = [];
                // 循環(huán)處理數(shù)組的每個(gè)img元素:
                _.each(lazyImgs, function ($i, index) {
                    // 判斷是否在可視范圍內(nèi):
                    if ($i.offset().top - wtop < wheight) {
                        // 設(shè)置src屬性:
                        $i.attr('src', $i.attr('data-src'));
                        // 添加到待刪除數(shù)組:
                        loadedIndex.unshift(index);
                    }
                });
                // 刪除已處理的對(duì)象:
                _.each(loadedIndex, function (index) {
                    lazyImgs.splice(index, 1);
                });
            }
        };
        // 綁定事件:
        $window.scroll(onScroll);
        // 手動(dòng)觸發(fā)一次:
        onScroll();
    

    onScroll()函數(shù)最后要手動(dòng)觸發(fā)一次,因?yàn)轫?yè)面顯示時(shí),并未觸發(fā)scroll事件。如果圖片已經(jīng)在可視區(qū)域內(nèi),這些圖片仍然是loading狀態(tài),需要手動(dòng)觸發(fā)一次,就可以正常顯示。

    要測(cè)試圖片懶加載效果,可以在Chrome瀏覽器的控制臺(tái)選擇“Network”,把“Online”改為“Slow 3G”就可以模擬慢速網(wǎng)絡(luò)下瀏覽器懶加載圖片的效果:

    lazy-loading-test

      本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請(qǐng)遵守用戶 評(píng)論公約

      類似文章 更多

      主站蜘蛛池模板: 亚洲精品无码永久在线观看你懂的 | 中文字幕亚洲精品人妻| 国产成人午夜福利院| 日本一道本高清一区二区| 最新无码国产在线视频人与| 国产精品中文字幕综合| 人妻精品动漫H无码中字| 国产精品永久免费视频| 在线免费成人亚洲av| 呦交小U女精品视频| 少妇熟女久久综合网色欲| 国产精品自在自线视频| 麻豆一二三区精品蜜桃| 国内熟妇人妻色在线视频 | 欧美黑人又大又粗XXXXX| 亚洲精品日韩在线观看| 亚洲乱码日产精品一二三| 亚洲成人av在线资源| 久久99国产精品久久99小说| 狠狠做五月深爱婷婷天天综合| 成年女人喷潮免费视频| 日日碰狠狠添天天爽五月婷| 国内精品久久久久影院蜜芽| 国产精品久久露脸蜜臀| 一本色道久久综合狠狠躁| 午夜福利国产精品视频| 亚洲国产成人精品女人久久久| 无码人妻丝袜在线视频红杏| 久久精品一本到99热免费| 欧美日韩一区二区综合| 日本一区不卡高清更新二区| 精品久久久久成人码免费动漫| 成人无码视频在线观看免费播放| 伊人久久综合无码成人网| 国产免费1卡2卡| 免费AV片在线观看网址| 亚洲AV无码成人网站手机观看 | 美女黄18以下禁止观看| 国产成人A在线视频免费| 无码精品人妻一区二区三区中| 亚洲综合欧美色五月俺也去|