vue优化首屏加载时间优化-gzip压缩

前言

  • 为什么要进行首屏加载优化,因为随着我们静态资源和第三方包和代码增加,压缩之后包会越来越大

  • 随着网络的影响,在我们第一输入url请求资源时候,网络阻塞,加载时间长,用户体验不好

  • 仔细观察后就会发现,代码压缩之后并没有多大,大的都是项目自身,静态资源,第三方包

  • 除去代码层面我们可以通过静态图片网络请求,gzip压缩,CDN(第三方包引入方式),浏览器缓存

gzip-是什么-为什么要这样

  • HTTP 可以对传输的内容进行压缩,减少网络实际传输数据的大小。服务器会将资源进行压缩后传输到客户端

  • gzip是一种数据的压缩格式,也可以说是文件格式。可以大大提高传输效率

  • 意思就是当我们在浏览器输入url时,浏览器会去访问服务器,服务器(Nginx配置好之后)会把内容压缩成gzip传输给浏览器,服务器会先去目录下寻找有没有对应的gz文件,如果没有,nginx要做一次压缩(压缩再快也是需要时间的)。这是我们直接在前端打包时配置好gzip打包,上传到服务器时,浏览器再次访问就不用压缩直接把内容传输给浏览器,

  • 这样既减少了资源传输时间,也保证短时间访问量过高,服务器压力不会那么大(压缩是消耗服务器资源的)

  • 当我们使用gzip压缩之后,首次加载时间最少会快个30%左右

代码实现

1.在前端下包,在vue.config.js文件配置

下包-版本自已看着来

npm install--save-dev compression-webpack-plugina6.1.1

vue.config.js配置-先引入包-在contigurenebpack中配置

// 外层引入包
const CompressionPlugin = require('compression-webpack-plugin')
​
// 配置
configureWebpack: {name: name,resolve: {alias: {'@': resolve('src')}},plugins: [new CompressionPlugin({cache: false, // 不启用文件缓存test: /\.(js|css|html)?$/i, // 压缩文件格式filename: '[path].gz[query]', // 压缩后的文件名algorithm: 'gzip', // 使用gzip压缩minRatio: 0.8 // 压缩率小于1才会压缩})]},

图示

2.项目打包-我们会发现在dist/static/css-js文件所有静态资源都有有一个.gz 后缀的压缩文件(证明配置成功)

3.nginx配置-配置完成之后重启nginx

  • 关于nginx配置的话-很多文章会在http这一层配置很多命令-其实一个基础就够了建议不知道命令不要跟风

  • 我们只要在最外层http配置一个gzip 开启,在server层配置一个使用,重启nginx之后就会生效gzip压缩

4.查看是否生效

  • 首先如果真的配置生效,清除浏览器缓存再次访问时,你就会发现快了不少

  • 其次我们打开f12检查-来到网络请求-点击js获取css-右键把Content-Encoding调试出来

如图参考


总结:

经过这一趟流程下来相信你也对 vue优化首屏加载时间优化-gzip压缩 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

什么不足的地方请大家指出谢谢 -- 風过无痕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/103595.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯发布超千亿参数规模的混元大模型;深度学习与音乐分析与生成课程介绍

🦉 AI新闻 🚀 腾讯发布超千亿参数规模的混元大模型 摘要:腾讯在2023腾讯全球数字生态大会上发布混元大模型,该模型拥有超千亿的参数规模和超2万亿 tokens 的预训练语料。混元大模型将支持多轮对话、内容创作、逻辑推理、知识增强…

MT8788安卓核心板详细参数_MTK安卓主板开发板智能通讯模块

MT8788安卓核心板集成了一个高效的12nm SoC,内置4G LTE调制解调器,将强大的硬件与到处可连接的全面功能设计相结合。 MTK8788智能终端具备许多功能,包括4G、2.4G/5G双频WiFi、蓝牙4.2BLE、2.5W功放、USB、mipi屏接口、三路摄像头接口、GPS和…

Win10如何清理无效注册表

电脑中部分注册表文件其实是没有什么用的,如果用户不主动清理的话就会占用大量的内存空间,从而导致系统变得卡顿,那么Win10怎么清理无效注册表呢,下面小编就给大家详细介绍一下Win10清理无效注册表的方法,大家感兴趣的…

【ubuntu22.04 文件管理器nautilus配置默认终端为alacritty】

前言 ubuntu默认的终端不能通过设置里的默认应用程序配置nautilus是ubuntu自带的文件管理器,包管理器里面只有nautilus-extension-gnome-terminal而没有提供大多终端update-alternatives工具可以修改系统的默认终端(ctrl-alt-t),但对nautilus文件管理器…

解决css设置图片大小不生效的问题

今天在做css布局时发现一个问题:设置图片大小不生效: 如上图所示:左上角两个图标的大小不一致,第一个是56x56,第二个是49x49,所以要把第二个的高度设置成56px: .mi-home img {height: 56px; }但是如上代码,…

雅思 《九分达人》阅读练习(二)

目录 雅思阅读练习 《九分达人》test3 paragraph3 1.单词含义要记准确,敏感度要上来。 2.找准定位,之后理解句子大致含义。 说说关于判断题的做题方法 关于“承认”有哪些单词 同替词汇 think 可以用什么其他单词来替换 单词 一些疑问 I have…

【区块链】DeFi是什么?大白话科普文

对于一些没有玩过区块链、或者说没有真金白银的体验过这个虚拟世界的小伙伴来说,这篇文章可以帮你了解 DeFi。致力于帮你在这个线上走出这一步。 当然这不是理财建议。 文章目录 前言什么是去中心化金融?有哪些 DeFi 项目DeFi由哪几部分构成?热门DeFi项目有哪些?前言 Def…

Matlab图像处理-最大类间方差阈值选择法(Otsu)

基本思想 最大类间方差阈值选择法又称为Otsu 算法,该算法是在灰度直方图的基础上用最小二乘法原理推导出来的,具有统计意义上的最佳分割阈值。它的基本原理是以最佳阈值将图像的灰度直方图分割成两部分,使两部分之间的方差取得最大值&#x…

汇川PLC学习Day1:跑马灯程序编写

汇川PLC学习Day1:跑马灯程序编写 一、 软件安装 进入官网下载软件 二、 使用帮助 三、 新建工程与功能代码实现 CtrlN 寻找内带输出模块的CPU并设置好工程名字与保存路径,语言选择想熟悉的类型 工程建立后,PLC_PRG即为用户编写程序文件…

HashMap核心方法:put()、putVal()、resize()与treeifyBin()

一、put方法 put方法的源码如下: 由此可见put的核心方法为putVal() putVal方法各参数值讲解: 前面三个参数不做过多讲解,第4个参数是控制是否要覆盖原来key中已经存在的值,比如HashMap的putIfAbsent方法调的也是putVal方法&…

无涯教程-JavaScript - IMPRODUCT函数

描述 IMPRODUCT函数以x yi或x yj文本格式返回1到255个复数的乘积。两个复数的乘积为- $$(A BI)(C DI)(AC-BD)(A B)1 $$ 语法 IMPRODUCT (inumber1, [inumber2] ...)争论 Argument描述Required/OptionalInumber11 to 255 complex numbers to multiply.Required[inumbe…

Java(三)逻辑控制(if....else,循环语句)与方法

逻辑控制(if....else,循环语句)与方法 四、逻辑控制1.if...else(常用)1.1表达格式(三种) 2.switch...case(用的少)2.1表达式 3.while(常用)3.1语法格式3.2关键字beak:3.3关键字 continue: 4.for…