前端性能优化Gzip

3,989 阅读2分钟

前言

之前前端性能优化的接触的比较少,随着项目的增大,性能问题就出来了,之前想到的性能优化是减少Http请求,但是这并不是单单能自己控制的,这要涉及到业务和后端逻辑也不好更改,想到之前跟着大佬做项目用到了Gzip,就想来学习一下。

GZIP就是通过HTTP压缩来优化性能,HTTP压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览。

vue项目配置

用vue-cli搭建的项目会配置有Gzip,只需要更改一下配置文件和安装一下依赖就可以使用了.

    <!--config/index.js-->
    productionGzip: true, //是否开启Gzip压缩
    productionGzipExtensions: ["js", "css"],

留意一下备注哦

 <!--build/webpack.prod.conf.js-->
    // 如果在../config/index.js中开启了Gzip  ,记得安装npm install compression-webpack-plugin --save-dev
if (config.build.productionGzip) {
    const CompressionWebpackPlugin = require('compression-webpack-plugin')
    webpackConfig.plugins.push(
        new CompressionWebpackPlugin({
            filename: '[path].gz[query]', // 之前这属性是asset,打包会报错 改成filename
            algorithm: 'gzip',
            test: new RegExp(
                '\\.(' + config.build.productionGzipExtensions.join('|') + ')$'
            ),
            threshold: 10240,
            minRatio: 0.8
        })
    )
}

配好上面两个文件,前端的基本就可以了,但是百度百科说到,打包可能会报错,有可能是因为这个依赖compression-webpack-plugin的版本问题,卸载这个依赖在重新安装其他版本的就可以了。 好了,我们来npm run build一下 , 我们可以看到会比之前多出一些gz文件

再来dist文件夹看下,可以看到压缩后会比之前的文件小好多。
打包后文件夹

tomcat 服务端

接下来就是配服务器了,但是我不会啊。。。这位大佬写的比较全面,tomcat的可以去看一下。

nginx 服务端

如果是nginx 服务的,找到nginx配置文件在 http 配置里面添加如下代码,然后重启nginx服务即可。

http:{ 

      gzip on; 

      gzip_static on;

      gzip_buffers 4 16k;

      gzip_comp_level 5;

      gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg 

                 image/gif image/png;

}

vue开启gzip性能优化主要分为两部分。记录一下以防忘记。哈哈,掘金是个好东西。