记一次前端性能优化

记一次前端性能优化

公司新做的一个项目,写完代码第一次上测试环境测试,首屏加载要6秒左右的样子,于是进行了一系列的优化,成功将首屏时间降到了200ms左右;今天写篇文章,分享一下这次优化心得。
项目背景
vue-cli 2.x框架

一、代码技巧
二、压缩
三、cdn

一、代码技巧
去掉多余代码
减少请求数量
复用组件
二、压缩代码

打开webpack ``gzip``压缩

使用这个网站[https://tinypng.com](https://tinypng.com/)压缩图片

配置nginx开启``gzip``(自行百度)

使用``npm run build --report``分析打包后代码块大小,如果有重复得依赖可以在``webpack.base.conf.js``中配置如下属性:
  resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      '@': resolve('src'),
      'bn.js': path.resolve(process.cwd(), 'node_modules', 'bn.js')//我这里打包后重复引用了“bn.js”
    }
  },

三、cdn

在vue项目得唯一html文件中引入cdn加速过的文件

<script src="https://cdn.jsdelivr.net/npm/google-protobuf@4.0.0-rc.2/google-protobuf.min.js"></script>//jsdelivr 一个国外在中国搭建得开源免费得cdn平台,还可以把大图片上传到github仓库进行加速,这个很简单自行百度。
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.5.2/vue.min.js"></script>//bootcdn bootstrap搭建得一个国内cdn,也可以用,但是插件没有jsdelivr得全
//注意引入的先后顺序,比如vue-router,vuex,element-ui都依赖vue,所以vue必须放在前面。
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.20.0/axios.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/vue-router/3.0.1/vue-router.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/vuex/3.5.1/vuex.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/element-ui/2.13.2/index.js"></script>
<script src="https://cdn.jsdelivr.net/npm/cos-js-sdk-v5@0.5.27/dist/cos-js-sdk-v5.min.js"></script>
<script defer src="https://cdn.bootcdn.net/ajax/libs/d3/3.5.17/d3.min.js"></script>
<script defer src="https://cdn.bootcdn.net/ajax/libs/jszip/3.5.0/jszip.min.js"></script>
<script defer src="https://cdn.bootcdn.net/ajax/libs/js-cookie/2.2.1/js.cookie.min.js"></script>
<script defer src="https://cdn.bootcdn.net/ajax/libs/mathjs/7.5.1/math.min.js"></script>

webpack通过webpack.base.conf.jsexternals属性进行扩展,可以让你像安装包一样使用import引入,这个属性具体用法webpack官方文档写的很详细,代码如下:

	 externals: {
    'vue': 'Vue',
    'element-ui': 'ELEMENT',//这个ELEMENT怎么来需要你自己查看下这个插件的源码,其他也都是这样。
    'vue-router': 'VueRouter',
    vuex: 'Vuex',
    'd3': 'd3',
    'jszip': 'JSZip',
    axios: 'axios',
    cookie: 'js-cookie',
    math: 'mathjs',
    'cos-js-sdk-v5': 'COS'
  },

以上一系列操作后页面速度是1.6s。
但是用cdn引入是有个很大问题哈,就是别人的网站挂了你自己的网站也要凉,所以自己要做好后手哈。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值