天天看點

nuxt頁面通路速度優化

今天在網上查詢如何提高網站通路率的問題,看到其中一條是頁面通路速度也占很大的比例,于是就看看自己的網站打開速度怎麼樣,于是打開chrome 浏覽器 ->清楚緩存 ->打開google調試工具 -> 打開網頁。

速度有點慢!!!

打開google調試工具檢視具體是什麼加載慢!

每次都清除緩存太麻煩!可以使用chrome浏覽器的無痕模式,每次都是重新加載!

前端優化

首先就是處理加載速度很慢的東西!但nuxt 打包過後,js大部分的時候都是改了名的,看不出來是什麼js,點選加載的資源,根據裡面的代碼 大概猜出來是什麼東西!

第一個:是一個時間格式化的js,

moment

,不知道這個東西為什麼這麼慢,其實大小也不大,我的代碼也有自己的格式化工具,于是就移除了這個js。

第二個:

element-ui

,由于建立項目的時候,選擇了

element-ui

,建立的模闆代碼預設使用的是全局加載,會加載一下沒有使用的東西,于改成了按需加載。

首先安裝

babel-plugin-component

yarn add babel-plugin-component 
           

然後 修改 

nuxt.config.js

 去掉 element-ui 的css ,babel-plugin-component 會按需加載 

nuxt頁面通路速度優化
babel: {
      "plugins": [
        [
          "component",
          {
            "libraryName": "element-ui",
            "styleLibraryName": "theme-chalk"
          }
        ]
      ]
    }
           
nuxt頁面通路速度優化

然後修改

 plugins/element-ui.js

 修改前 

import Vue from 'vue'
import Element from 'element-ui'
import locale from 'element-ui/lib/locale/lang/en'
Vue.use(Element, { locale })
           

 修改後

這兩個優化完後,在通路一下,發現速度是好點了,但是還是不是很快,再看下請求時間,發現

element-ui

的圖示庫加載很慢,浪費了我1.2s,目前項目中使用的并不是很多,就一兩個地方,于是去掉icon的方式,直接加載圖檔,以後探索使用svg。

這個去掉之後,速度提升很大。前端優化到此差不多了,畢竟項目不是很複雜。

後端優化

給Nginx配置一個資源壓縮:

#配置壓縮 加速頁面打開
        gzip on; #開啟資源壓縮
        gzip_min_length 2k;#設定頁面允許壓縮的最小位元組
        gzip_buffers 4 16k;#設定壓縮的記憶體大小 按16k大小的 4倍申請記憶體
        gzip_http_version 1.1;#設定http 協定版本
        gzip_comp_level 2; #設定壓縮等級1-9 值越小速度越快 壓縮比越小
        gzip_types text/plain application/x-javascript text/css application/xml image/jpeg image/gif image/png; # 設定壓縮類型,沒設定的不壓縮
        gzip_disable msie6;
           
nuxt頁面通路速度優化

測試一下 

curl -I -H "Accept-Encoding: gzip, deflate" "https://oitboy.com"
           
nuxt頁面通路速度優化

出現紅色部分,說明配置生效了。

ps: 推薦一個好用的免費的測試網站的工具 Google PageSpeed Insights

分别有移動端和pc端的檢測

nuxt頁面通路速度優化

下面會列出需要優化的地方 

繼續閱讀