<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      CDN靜態(tài)資源加速&Lighthouse性能監(jiān)測(cè)

      本文主要介紹了cdn加速在項(xiàng)目中的實(shí)現(xiàn),以及使用Lighthouse對(duì)前端性能指標(biāo)進(jìn)行監(jiān)測(cè)打分。

      Lighthouse簡(jiǎn)介

      Lighthouse是谷歌開發(fā)并開源的web性能測(cè)試工具,用于改進(jìn)網(wǎng)絡(luò)應(yīng)用的質(zhì)量,可以將其作為一個(gè)Chrome擴(kuò)展程序運(yùn)行,或從命令行運(yùn)行。只需要為其提供一個(gè)需要審查的地址,Lighthouse就會(huì)對(duì)頁面進(jìn)行一連串的測(cè)試,生成一個(gè)有關(guān)頁面性能的報(bào)告。

      在瀏覽器的調(diào)試工具中默認(rèn)就存在lighthouse選項(xiàng),只需要切換至lighthouse,在右側(cè)的選項(xiàng)區(qū)選中需要的選項(xiàng)。點(diǎn)擊生成報(bào)告。

      從報(bào)告中可以看出某網(wǎng)站的首屏?xí)r間是0.6s,可交互時(shí)間是1.5s,總阻塞時(shí)間是10ms。最大繪制時(shí)間是1s。通過這些性能指標(biāo)就可以看到在哪方面存在性能瓶頸。

      在下方會(huì)對(duì)渲染進(jìn)行拍照截圖,如果空白頁面較多也能體現(xiàn)網(wǎng)站白屏?xí)r間過長。下面還會(huì)給一些優(yōu)化建議。比如某些資源過大,加載時(shí)間過長等,當(dāng)然這些建議不并一定都是對(duì)的,只是一些建議。

      接下來我們就使用Lighthouse對(duì)項(xiàng)目進(jìn)行監(jiān)測(cè)衡量,使用cdn靜態(tài)資源,對(duì)項(xiàng)目進(jìn)行優(yōu)化加速。

      CDN靜態(tài)資源加速實(shí)現(xiàn)

      vue3 項(xiàng)目代碼改造

      // vue.config.js

      const CDN = {

      js: [

      'https://unpkg.com/vue@3.2.13/dist/vue.global.prod.js',

      'https://cdn.bootcdn.net/ajax/libs/vue-router/4.0.14/vue-router.global.prod.js',

      'https://unpkg.com/vue-demi@0.13.11/lib/index.iife.js',

      'https://unpkg.com/pinia@2.0.13/dist/pinia.iife.prod.js',

      'https://unpkg.com/axios@0.26.1/dist/axios.min.js',

      'https://unpkg.com/element-plus@2.1.7/dist/index.full.min.js',

      ],

      css: [

      'https://unpkg.com/element-plus@2.1.7/dist/index.css',

      ]

      }

      const objExternals = {

      vue: 'Vue',

      'element-plus': 'ElementPlus',

      'vue-router': 'VueRouter',

      'pinia': 'Pinia',

      'axios': 'axios'

      }

      module.exports = {

      chainWebpack: config => {

      // 配置,將當(dāng)前頁定義的cdn值傳到主頁面(index.html)

      config.plugin('html').tap(args => {

      // 這里我是除本地環(huán)境,其余均使用CDN,可自己選擇是否配置

      args[0].cdn = process.env.NODE_ENV === 'development' ? {} : CDN

      return args;

      });

      },

      configureWebpack: {

      ...

      // 定義webpack打包配置

      externals: process.env.NODE_ENV === 'development' ? {} : objExternals,

      },

      }

      // public文件夾下 index.html 添加如下代碼

      <head>

      ...

      <% for (var i in htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.css) { %>

      <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="preload" as="style" />

      <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="stylesheet" />

      <% } %>

      <title><%= htmlWebpackPlugin.options.title %></title>

      <% for (let i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %>

      <script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>

      <% } %>

      </head>

      行云環(huán)境下相關(guān)配置改造

      行云子應(yīng)用編譯后只生成index.js,沒有index.html,新版的plugin-webpack支持修改index.js,可以優(yōu)先加載外部資源。

      but!結(jié)果是失敗的,外部資源加載到最外層的行云基座上,vue版本、全局的css樣式等會(huì)直接影響到所有的行云子應(yīng)用。需要后續(xù)行云優(yōu)化,增加沙箱隔離。

      所以,這里只做一個(gè)演示,而不做更深層次的優(yōu)化完善。

      文檔鏈接: JModule

      // plugin-webpack 依賴需升級(jí)到0.4.4版本

      // "@jmodule/plugin-webpack": "^0.4.4",

      // .jmodule.conf.js

      const cdnJsList = [

      'https://unpkg.com/vue@3.2.13/dist/vue.global.prod.js',

      'https://cdn.bootcdn.net/ajax/libs/vue-router/4.0.14/vue-router.global.prod.js',

      'https://unpkg.com/vue-demi@0.13.11/lib/index.iife.js',

      'https://unpkg.com/pinia@2.0.13/dist/pinia.iife.prod.js',

      'https://unpkg.com/axios@0.26.1/dist/axios.min.js',

      'https://unpkg.com/element-plus@2.1.7/dist/index.full.min.js',

      ]

      const cdnCssList = [

      'https://unpkg.com/element-plus@2.2.17/dist/index.css'

      ]

      module.exports = {

      mode: 'modules',

      assetsModifier: (assetsJson) => {

      assetsJson.js = cdnJsList.concat(assetsJson.js)

      assetsJson.css = cdnCssList.concat(assetsJson.css)

      return assetsJson

      }

      };

      CDN加速改造前后數(shù)據(jù)對(duì)比

      使用的項(xiàng)目: 流水線-鏡像市場(chǎng)

      我們從三個(gè)維度進(jìn)行衡量:打包大小、打包用時(shí)、lighthouse性能評(píng)分

      改造前

      打包大小

      打包用時(shí)

      // 各模塊打包計(jì)時(shí)插件 speed-measure-webpack-plugin

      // 下載依賴

      npm i speed-measure-webpack-plugin

      // vue.config.js

      const SpeedMeasurePlugin = require("speed-measure-webpack-plugin");

      const smp = new SpeedMeasurePlugin();

      module.exports = {

      configureWebpack: smp.wrap({

      ...

      }),

      }

      打包結(jié)果如圖,統(tǒng)計(jì)五次次打包數(shù)據(jù):

      lighthouse性能評(píng)分

      獨(dú)立域名

      行云子應(yīng)用

      改造后

      打包大小

      打包用時(shí)

      lighthouse性能評(píng)分

      獨(dú)立域名

      行云子應(yīng)用

      總結(jié)

      從上面數(shù)據(jù)可以看出,經(jīng)過CDN加速后,項(xiàng)目打包大小減小80%左右,打包用時(shí)減少50%以上,lighthouse性能評(píng)分也有明顯提高。

      lighthouse是一款非常好的web性能測(cè)試工具,通過監(jiān)測(cè)打分并給出相應(yīng)的優(yōu)化建議,我們可以根據(jù)其建議對(duì)項(xiàng)目進(jìn)行性能優(yōu)化。

      作者:京東零售 劉慧斌

      來源:京東云開發(fā)者社區(qū) 轉(zhuǎn)載請(qǐng)注明來源

      posted @ 2024-01-16 10:35  京東云技術(shù)團(tuán)隊(duì)  閱讀(48)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 久久精品av国产一区二区| 国产精品毛片在线完整版| 国产在线观看播放av| 久久久无码精品午夜| 久久精品国产精品亚洲精品| 亚洲一区二区中文字幕| 海盐县| 日韩欧美在线综合网另类| 夜夜爽免费888视频| 少妇人妻偷人偷人精品| 午夜精品福利一区二区三| 亚洲AV永久中文无码精品综合| 午夜激情福利在线免费看| 怡红院一区二区三区在线| 99久久亚洲综合精品成人网| 欧美日韩v| 久久综合久中文字幕青草| 亚洲精品人妻中文字幕| 久久国内精品自在自线观看| 爆乳日韩尤物无码一区| 四虎成人精品国产永久免费| 亚洲AV成人片不卡无码| 亚洲精品宾馆在线精品酒店| 成人福利国产午夜AV免费不卡在线 | 亚洲区综合区小说区激情区| 一本久道中文无码字幕av| 99精品热在线在线观看视| 国产精品区一区第一页| 国产成人AV男人的天堂| 国内精品久久人妻无码不卡 | 杭锦后旗| 欧美偷窥清纯综合图区| 久久一本人碰碰人碰| 亚洲午夜久久久影院伊人| 在线天堂www在线| 中文字幕在线无码一区二区三区| 男人用嘴添女人私密视频| 亚洲AV无码精品色午夜果冻| 国产精品v片在线观看不卡| 老熟妇国产一区二区三区 | 色噜噜噜亚洲男人的天堂|