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

news2024/11/24 4:06:58

前言

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

  • 随着网络的影响,在我们第一输入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.coloradmin.cn/o/988784.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解锁在线教育新机遇|V-More在线教育行业沙龙圆满落幕!

AIGC技术的渗透,也将为在线教育领域带来新的模式创新。面对以上增长机遇与潜在挑战,在线教育企业想要做好用户增长和技术降本并不简单。 9月1日,由火山引擎、AMD与msup联合举办的在线教育行业私享会成功举办,40余位在线教育行业的…

如何利用ProcessOn 做资产管理流程图

资产管理 是一家公司最重要的管理活动。好的资产管理可以让资源最优化利用,实现资产价值的最大化。可以帮助组织管理和降低风险。同时当需要决策的时候,对资产数据进行分析和评估,也可以帮助做出更明智的决策,如优化资产配置、更新…

YOLOV7改进-添加P2和P6检测层(以YOLOV7-Tiny为例)

下载三个配置文件地址 1、加p6 1、配置文件添加 2、让它自己利用k-means算法进行聚类 3、如果从8或9出来,在这里改 完整

NoUniqueBeanDefinitionException: expected single matching bean but found 2

文章目录 前言一、错误现象二、原因分析三、解决办法总结 前言 看到这个错误,大致也能猜出错误的原因,就是spring中注入的bean重复了,本来应该是单利的bean,但是现在却找到了两个,那么导致这个问题的原因是什么?如何解决呢? 一、错误现象 运行项目或者运行junit测试,直接报…

修改Docker镜像默认下载地址

1、安装完docker desktop后,先不要打开 2、新建目录 D:\ProgramData\Docker 3、在C:\Users\你的用户名\AppData\Local下,打开cmd或者powershell执行以下命令,命令语法略有不同。 powershell命令: cmd /c mklink /J Docker D:\Pro…

知识图谱实战应用27-基于多模态数据的洪涝灾害知识图谱构建与实际应用

大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用27-基于多模态数据的洪涝灾害知识图谱构建与实际应用。今年以来,很多省份都经历了暴雨肆虐,并造成了洪涝灾害,洪涝灾害是一种常见而严重的自然灾害,对人类社会和环境造成了巨大的影响。为了有效地应对洪涝灾害,构建…

Foxboro FBM232 P0926GW以太网通信模块

以太网通信:FBM232 P0926GW 模块支持以太网通信,可用于与其他设备、传感器、执行器和监控系统进行数据交换。 通信协议:模块通常支持多种通信协议,如Modbus TCP/IP、EtherNet/IP 等,以便与不同类型的设备和系统进行通…

3.xaml Label TextBox PasswordBox Button

1. Label TextBox PassWordBox Button a.运行图片 b.Xaml源码 <Grid><!--VerticalAlignment 控件竖直--><!--HorizontalAlignment 控件水平--><!--VerticalConte

etcd选举源码分析和例子

本文主要介绍etcd在分布式多节点服务中如何实现选主。 1、基础知识 在开始之前&#xff0c;先介绍etcd中 Version, Revision, ModRevision, CreateRevision 几个基本概念。 1、version 作用域为key&#xff0c;表示某个key的版本&#xff0c;每个key刚创建的version为1&#…

切片机制和MR工作机制

InputFormat基类 TextInputFormat&#xff1a;TextInputFormat是默认的FileInputFormat实现类。按行读取每条记录。键是存储该行在整个文件中的起始字节偏移量&#xff0c; LongWritable类型。 CombineTextInputFormat&#xff1a;CombineTextInputFormat用于小文件过多的场景…

什么是正向代理和反向代理

一、什么是正向代理 正向代理&#xff08;Forward Proxy&#xff09;是一种代理服务器&#xff0c;它位于客户端和服务端之间&#xff0c;代表客户端向其他服务器发送请求。 一般使用的场景就是&#xff0c;当客户端无法直接访问某些资源时&#xff0c;可以通过正向代理来访问…

QML实现文件十六进制数据展示

前言 将一个二进制文件直接拖放到Qt Creator中可以直接查看到以十六进制显示的数据格式&#xff0c;如&#xff1a; 要实现一个这样的效果&#xff0c;还是要花不少时间的。 在网上找了挺多示例&#xff0c;其中一个开源代码效果不错&#xff08;参考这里&#xff09;&#…

Linux:【Mysql】Centos7安装mysql8.0

目录 一、环境及版本介绍 二、安装前准备 三、开始安装 一、环境及版本介绍 Linux环境&#xff1a;Centos7 Mysql版本&#xff1a;8.0.26 安装时使用的用户&#xff1a;root 二、安装前准备 1.1、下载Centos7镜像 网上寻找相关资源即可 1.2、下载VMwareWorkstation Pro并…

cpolar内网穿透

目录 一、引言二、什么是cpolar三、内网穿透四、如何使用cpolar1、下载cpolar软件安装包2、注册cpolar账号3、使用cpolar 一、引言 当我们完成了一个tomcat的web项目之后&#xff0c;如果我们想让其他电脑访问到这个项目&#xff0c;我们可以让其他电脑和本机连接到同一个局域…

python如何学习

功能如此强大、高效的Python&#xff0c;却非常的简单好学&#xff0c;这让学它的同学爱不释手&#xff0c;也让越来越多的互联网企业开始用Python来做主要的开发语言&#xff0c;比如谷歌、Facebook&#xff08;现Meta&#xff09;、豆瓣、知乎等知名互联网公司都在使用Python…

idea2018修改大小写提示(敏感)信息

操作步骤如下&#xff1a; File > Settings > Editor > Code Completion > Code Completion&#xff08;默认是首字母&#xff0c;选为none将不区分大小写&#xff09;

花生壳内网穿透+Windows系统,如何搭建网站?

1. 准备工作 在百度搜索“Win7下安装ApachePHPMySQL”&#xff0c;根据搜到的教程自行安装WAMP环境。 如果在网页上键入http://127.0.0.1/ 出现以下页面表示您的服务器已经建好&#xff0c;下一步就是关键&#xff0c;如何通过花生壳内网穿透&#xff0c;让外网的用户访问到您…

1.4 空间中的曲线和曲面

空间中的曲线与曲面 知识点1 曲面方程定义 定义1 如果曲面 S 与方程F (x,y,z ) 0 有下述关系&#xff1a; &#xff08;1&#xff09; 曲面 S 上的任意点的坐标都满足此方程 &#xff08;2&#xff09;不在曲面S上的点的坐标不满足此方程 则F&#xff08;x,y,z&#xff0…

无涯教程-JavaScript - IMEXP函数

描述 IMEXP函数以x yi或x yj文本格式返回复数的指数。复数的指数为- $$e ^ {((x yi)} e ^ xe ^ {yi} e ^ x(\cos y i \sin y)$$ 语法 IMEXP (inumber)争论 Argument描述Required/OptionalInumberA complex number for which you want the exponential.Required Not…