<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          圖片降級(jí)方案原來(lái)這么簡(jiǎn)單?

          共 5637字,需瀏覽 12分鐘

           ·

          2021-11-04 21:36

          大廠技術(shù)  高級(jí)前端  Node進(jìn)階

          點(diǎn)擊上方 程序員成長(zhǎng)指北,關(guān)注公眾號(hào)

          回復(fù)1,加入高級(jí)Node交流群

          在做項(xiàng)目?jī)?yōu)化的時(shí)候,發(fā)現(xiàn)頁(yè)面加載很慢。結(jié)果一看主要的問(wèn)題就是就是圖片的大小過(guò)慢,然后呢準(zhǔn)備呢去做優(yōu)化, 本來(lái)想去用webp,去優(yōu)化的,但是呢這個(gè)圖片是不是我們就用不了呢,然后看了下業(yè)界優(yōu)化王,直接打開(kāi)了淘寶網(wǎng)的首頁(yè)。淘寶的首屏加載是很快的,然后 我就去看了下他圖片的格式:

          這種圖片其實(shí)是做了降級(jí)處理如果說(shuō) 支持webp就使用, 如果不支持的話就使用jpg

          為什么要做圖片降級(jí)

          圖片的格式有很多 jpeg png webp等,我們經(jīng)常使用webp格式的圖片,因?yàn)閣ebp格式的圖片擁有無(wú)損壓縮和有損壓縮兩種模式而且壓縮率更高等優(yōu)點(diǎn)。但是webp格式的圖片同樣也有缺點(diǎn),ios webview和IE不支持webp。所以我們要檢測(cè)瀏覽器是否支持webp格式的圖片,如果不支持webp則展示圖片的其它格式。

          降級(jí)方案

          • html 圖片懶加載
          <div class="box">
              <img   alt="">
          </div>
          復(fù)制代碼
          • 檢測(cè)瀏覽器是否支持該webp
           function isSupportWebp(cb) {
                  let img = new Image();
                  img.src = webpPath;
                  img.onload = function() {
                      cb(true);
                  }
                  img.onerror = function() {//瀏覽器不支持該圖片格式時(shí)會(huì)觸發(fā)
                      cb(false);
                  }
              }
          復(fù)制代碼
          • img path 截取 圖片展示
           function LoadImg() {
                  let img = document.getElementsByTagName('img')[0];
                  isSupportWebp(function(isSupport) {
                      if(isSupport) {
                          img.src = webpPath;
                      } else {
                          let index = webpPath.indexOf('_.webp');
                          if(index!=-1) {
                              webpPath = webpPath.slice(0,index);
                          }
                          img.src = webpPath;

                      }
                  });
              }
          復(fù)制代碼
          • 完整代碼
          <body>
          <div class="box">
              <img   alt="">
          </div>
          <script>

              let webpPath = './img/O1CN01xYaPxM1CgQAujTNvy_!!0-saturn_solar.jpg_220x220.jpg_.webp';
              function isSupportWebp(cb) {
                  let img = new Image();
                  img.src = webpPath;
                  img.onload = function() {
                      cb(true);
                  }
                  img.onerror = function() {
                      cb(false);
                  }
              }
              function LoadImg() {
                  let img = document.getElementsByTagName('img')[0];
                  isSupportWebp(function(isSupport) {
                      if(isSupport) {
                          img.src = webpPath;
                      } else {
                          let index = webpPath.indexOf('_.webp');
                          if(index!=-1) {
                              webpPath = webpPath.slice(0,index);
                          }
                          img.src = webpPath;

                      }
                  });
              }
             LoadImg();
          </script>
          </body>

          總結(jié)

          前端性能優(yōu)化永遠(yuǎn)是一個(gè)永無(wú)止境的話題, 還是需要結(jié)合項(xiàng)目具體問(wèn)題具體分析。近期會(huì)寫「canvas性能優(yōu)化」、 和「從0-1開(kāi)發(fā)一款vscode 插件」。還在寫作中, 對(duì)文章有任何問(wèn)題,或者哪里不對(duì)的地方歡迎指正, 我看到了之后肯定會(huì)采納的,我們下期再見(jiàn)????哦

          Node 社群


          我組建了一個(gè)氛圍特別好的 Node.js 社群,里面有很多 Node.js小伙伴,如果你對(duì)Node.js學(xué)習(xí)感興趣的話(后續(xù)有計(jì)劃也可以),我們可以一起進(jìn)行Node.js相關(guān)的交流、學(xué)習(xí)、共建。下方加 考拉 好友回復(fù)「Node」即可。


             “分享、點(diǎn)贊在看” 支持一波??

          瀏覽 46
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  特级特黄特色大片免费看 | 精品七区 | 精品一区二区三区四 | 操逼免费观看视频 | 世界二级毛片国语 |