<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>

          umi應(yīng)用首屏加載速度提高3倍+(通用性能優(yōu)化)

          共 2568字,需瀏覽 6分鐘

           ·

          2021-11-29 17:05

          點(diǎn)擊上方 前端瓶子君,關(guān)注公眾號(hào)

          回復(fù)算法,加入前端編程面試算法每日一題群

          根據(jù)以往的博客,目前我就司的公司前端框架umi[1], ali出品以路由為基礎(chǔ)的,同時(shí)支持配置式路由和約定式路由,保證路由的功能完備,并以此進(jìn)行功能擴(kuò)展的前端應(yīng)用框架。


          問題所在

          一直以來我們網(wǎng)站的首頁(yè)加載速度很慢,雖然使用了umi但是我們沒有使用ssr依舊使用的是spa.首屏加載速度在6s左右, 當(dāng)我們看network分析為什么加載速度為什么這么慢,看到一些靜態(tài)資源umi[hash].js占據(jù)的內(nèi)存是3.5M,響應(yīng)速度超過了6s,這只是單純的一個(gè)js文件更何況是一個(gè)spa首屏加載的文件本身來說就很多。

          初步思考

          期間我想了很多首頁(yè)加載更快的方法, 比如:

          • 抽組件
          • 壓縮圖片, 為此我還寫了一個(gè)node應(yīng)用前端項(xiàng)目組圖片管理[2]
          • 還有一些網(wǎng)上的壓縮速度,比如拆分文件使用更小的插件庫(kù)

          深入研究

          最近在好好研究加載速度的問題,重新梳理network的請(qǐng)求體,發(fā)現(xiàn)最占據(jù)帶寬的就是幾個(gè)靜態(tài)文件,通過Response Header看得出來我們服務(wù)器上面是通過nginx啟動(dòng) 按照道理我們使用了nginx應(yīng)該是有著負(fù)載均衡的,我相信使用過umi-cli或者是任意的cli的同學(xué)應(yīng)該都會(huì)看到打包在服務(wù)器上面響應(yīng)靜態(tài)資源都很大

          仔細(xì)分析了看了下請(qǐng)求頭部信息

          Request Headers
            Accept - Encoding: gzip, deflate
          復(fù)制代碼

          一直是知道gzip壓縮這個(gè)概念,但是我只在我們這個(gè)網(wǎng)絡(luò)請(qǐng)求req里面看到了gzip,并沒有在res內(nèi)容看到,由于服務(wù)器的部署一直不在前端手上,也不好直接說后端或者運(yùn)維的同學(xué)。

          我打開了百度對(duì), 比了下百度的響應(yīng)

          Response Headers
            Accept - Encoding: gzip, deflate
            server: JSP3/2.0.14
          Request Headers
            accept-encoding: gzip, deflate, br
          復(fù)制代碼

          由此立馬判斷出來是服務(wù)端的同學(xué)沒有使用nginx做負(fù)載均衡,對(duì)靜態(tài)資源做壓縮,然后去網(wǎng)上搜了下關(guān)于nginx 和 gzip的知識(shí)。這類文章很多,同學(xué)可以自行g(shù)oogle。

          解決問題

          慶幸本人的權(quán)限夠大,先是拿到了測(cè)試服務(wù)器按照網(wǎng)站的提示開啟gzip

          最后我們的Nginx.conf的配置如下

          server {
              gzip on;
              gzip_buffers 32 4 K;
              gzip_comp_level 6;
              gzip_min_length 100;
              gzip_types application/javascript 
              text/javascript text/css text/xml;
              gzip_disable "MSIE [1-6]\.";
              #配置禁用gzip條件, 支持正則. 此處表示ie6及以下不啟用gzip( 因?yàn)閕e低版本不支持)
              gzip_vary on;
          }
          復(fù)制代碼

          Tips 很多配置的gzip_types會(huì)少_application/javascript_,但是實(shí)打?qū)嵞銜?huì)發(fā)現(xiàn)網(wǎng)絡(luò)請(qǐng)求中大部分的js文件請(qǐng)求如下:

          Content-Type: application/javascript
          復(fù)制代碼

          這個(gè)很重要,畢竟都2021年了.

          配置完成以后,記得重啟nginx,當(dāng)我們?cè)诨剡^頭再來看整個(gè)network請(qǐng)求,之前占據(jù)最大內(nèi)存的umi[hash].js等在size里面大小縮小了近4倍,整體響應(yīng)的速度快了3倍+,這個(gè)數(shù)字真的已經(jīng)可以說基本上算很快的響應(yīng)速度。

          總結(jié)

          對(duì)于前端來說,客戶端的性能優(yōu)化是前端一直追求的目標(biāo),那種秒開得到的喜悅。

          關(guān)于性能優(yōu)化,個(gè)人感慨要有針對(duì)性的性能優(yōu)化,比如首屏速度/壓縮文件/整合資源,要學(xué)會(huì)觀察請(qǐng)求響應(yīng) - 分析 - 解決問題。

          來源:pro-xiaoy

          https://juejin.cn/post/6964352706832302117

          最后

          歡迎關(guān)注【前端瓶子君】??ヽ(°▽°)ノ?
          回復(fù)「算法」,加入前端編程源碼算法群,每日一道面試題(工作日),第二天瓶子君都會(huì)很認(rèn)真的解答喲!
          回復(fù)「交流」,吹吹水、聊聊技術(shù)、吐吐槽!
          回復(fù)「閱讀」,每日刷刷高質(zhì)量好文!
          如果這篇文章對(duì)你有幫助,在看」是最大的支持

           》》面試官也在看的算法資料《《
          “在看和轉(zhuǎn)發(fā)”就是最大的支持
          瀏覽 190
          點(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>
                  天天插天天干天天操 | 亚洲成人影片在线点播 | 免费高清不卡a无码 | 天天插日日干 | 黑人精品欧美一区二区蜜桃 |