1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        圖片降級(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就使用, 如果不支持的話(huà)就使用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ú)止境的話(huà)題, 還是需要結(jié)合項(xiàng)目具體問(wèn)題具體分析。近期會(huì)寫(xiě)「canvas性能優(yōu)化」、 和「從0-1開(kāi)發(fā)一款vscode 插件」。還在寫(xiě)作中, 對(duì)文章有任何問(wèn)題,或者哪里不對(duì)的地方歡迎指正, 我看到了之后肯定會(huì)采納的,我們下期再見(jiàn)????哦

        Node 社群


        我組建了一個(gè)氛圍特別好的 Node.js 社群,里面有很多 Node.js小伙伴,如果你對(duì)Node.js學(xué)習(xí)感興趣的話(huà)(后續(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)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            成人vagaa免费观看视频 | 嗯啊粗大灌满了白浊h总裁男男 | 成人黄片免费视频 | 日本丝袜脚交视频 | 成人啪啪网站 | 欧美性高潮 | 国产精品又大又粗视频 | 国产欧美亚洲日韩 | 成人在线偷拍视频 | 国产女人18毛片精品18水 |