真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JS圖片預加載插件怎么用

這篇文章主要介紹了JS圖片預加載插件怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)公司"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設擁有電腦版、微信版、手機版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡+移動網(wǎng)絡一網(wǎng)打盡,滿足企業(yè)的營銷需求!成都創(chuàng)新互聯(lián)公司具備承接各種類型的成都網(wǎng)站設計、網(wǎng)站建設項目的能力。經(jīng)過10余年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質的服務,并獲得了客戶的一致好評。

在開發(fā)H5項目中有時候會遇到要加載大量圖片的情況,利用預加載技術可以提高用戶瀏覽時的體驗。

1)概念:

懶加載也叫延遲加載:JS圖片延遲加載,延遲加載圖片或符合某些條件時才加載某些圖片。
預加載:提前加載圖片,當用戶需要查看時可直接從本地緩存中渲染。

2)區(qū)別:

兩種技術的本質:兩者的行為是相反的,一個是提前加載,一個是遲緩甚至不加載。懶加載對服務器前端有一定的緩解壓力作用,預加載則會增加服務器前端壓力。

服務器端區(qū)別:懶加載的主要目的是作為服務器前端的優(yōu)化,減少請求數(shù)或延遲請求數(shù)。預加載可以說是犧牲服務器前端性能,換取更好的用戶體驗,這樣可以使用戶的操作得到最快的反映。

例子:




  
  preload
  


  
  
    
    

      上一張       下一張     

  
          0%

  
        

插件:

; (function ($) {

  function PreLoad(imgs, options) {
    //保存圖片到數(shù)組
    this.imgs = (typeof imgs === 'string') ? [imgs] : imgs;
    this.opts = $.extend(PreLoad.defaults, options);

    // this._unordered();//如果只有無序預加載
    if (this.opts.order === 'ordered') {
      this._ordered();
    } else {
      this._unordered();//默認是無序預加載
    }
  };
  PreLoad.defaults = {
    order: 'unordered', //指定默認加載方式為無序
    each: null, //每一張圖片加載完畢后執(zhí)行
    all: null //所有圖片加載完畢后執(zhí)行
  };
  //有序預加載
  PreLoad.prototype._ordered = function () {
    var opts = this.opts,
      imgs = this.imgs,
      len = imgs.length,
      count = 0;

    load();
    function load() {
      var imgObj = new Image();

      $(imgObj).on('load error', function () {
        //相當于if(opts.each){ opts.each(); } ,如果有配置each()方法則調用,后面的all()同理
        opts.each && opts.each(count);

        if (count >= len) {
          //所有圖片加載完畢
          opts.all && opts.all();
        } else {
          //如果沒加載完,繼續(xù)調用自身加載下一張
          load();
        }
        count++;
      });

      imgObj.src = imgs[count];//緩存圖片
    };
  };

  //無序加載
  PreLoad.prototype._unordered = function () {
    var imgs = this.imgs,
      opts = this.opts,
      count = 0,
      len = imgs.length;

    $.each(imgs, function (i, src) {
      //判斷圖片數(shù)組中的每一項是否為字符串,不是字符串會導致出錯,因此返回
      if (typeof src != 'string') return;

      var imgObj = new Image();

      $(imgObj).on('load error', function () {
        //判斷opts.each是否存在,不存在則不執(zhí)行
        opts.each && opts.each(count);

        if (count >= len - 1) {
          //判斷opts.all是否存在,存在則執(zhí)行
          opts.all && opts.all();
        }
        count++;
      });

      imgObj.src = src;//緩存圖片
    });
  };

  //由于不用具體的對象去調用,因此用$.extend(object)掛載插件.
  $.extend({
    //preload為插件名
    preload: function (imgs, opts) {
      new PreLoad(imgs, opts);
    }
  });

})(jQuery);

感謝你能夠認真閱讀完這篇文章,希望小編分享的“JS圖片預加載插件怎么用”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!


新聞名稱:JS圖片預加載插件怎么用
文章分享:http://weahome.cn/article/jophds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部