html加载速度优化,首次部署前端页面加载速度优化过程

前言

首次部署项目,刚开始时采用vue的dev在线上跑,发现了很多问题,其中最大的问题就是响应太慢时间太久。由于服务器时1g、1m、1核的ubuntu云服务器,访问一个1m多的文件居然要好几十秒,很明显是有很大问题的。下面是优化的过程。

将前端文件采用nginx转发

将dev服务改为静态文件服务,这里有两种选择,一是起一个node静态文件服务和请求转发,一是用nginx做静态文件服务和请求转发,考虑到nginx配置比较简单,并且是专门用来做这个的,所以选择用了nginx。我vue-router使用的history api,所以nginx需要坐下额外的配置,在location / 里面加了一行try_files $uri /index.html;然后build,将root指向dist,完整如下:

location / {

root /home/ubuntu/front/vue-blog/dist/;

index index.html index.htm;

try_files $uri /index.html;

}

请求了下,发现依旧比较慢,看了下原来是忘记压缩代码了。

减小请求包的大小

1、build时加上压缩,使用了uglifyjs-webpack-plugin这个插件,现在最大的app.js包(已经分包,并按需加载)在200k左右,发现页面响应速度明显加快,但还是不够。

2、将vue.js、vue-router等第三方包采用externals的方式载入页面。此时发现包大小在150k左右。

3、进一步查看,发现样式文件居然也被打包到js里面去了,所以将样式文件单独提取出来,采用mini-css-extract-plugin插件。此时发现app.js还有80k左右。

4、将nginx配置上gzip,配置如下:

gzip on;

gzip_static on;

gzip_min_length 5k;

gzip_buffers 4 16k;

#gzip_http_version 1.0;

gzip_comp_level 6;

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

gzip_vary on;

这里特别需要注意gzip_types字段必须和你响应的content-type一致,否则不会生效。这里的gzip_comp_level也需要合理设置,值为1~9,越大压缩越厉害,耗时也越多,我这采用6已经偏大。此时再看获取到的页面,最大文件app.js为26k。在访问速度就很快了。

TODO

这里还有几个点是待完善的。

1、升级到http2,所有请求可以并发,页面会更快加载。

2、root不能为dist文件,因为我每次部署都是服务器自己pull代码然后build,这样会导致页面有几十秒的不可访问。服务端的代码也不能直接使用上传那个位置的文件,这也会导致服务端有几十秒的不可用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值