美文网首页
Vue性能优化

Vue性能优化

作者: 程序员不务正业 | 来源:发表于2020-05-26 10:06 被阅读0次

1、gzip压缩(效果明显)

在所有的web前端项目,静态资源基本都放在cdn上,gzip的压缩是非常必要的,它直接改变了js文件的大小,减少两到三倍。nginx的gzip配置非常简单,在你对应的域名底下,添加下面的配置,重启服务即可。gzip_comp_level的值大于2的时候并不明显,建议设置在1或者2之间。

# 开启gzip
gzip on;
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
# gzip 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间 ,不是压缩级别越高越好,其实gzip_comp_level 1的压缩能力已经够用了,后面级别越高,压缩的比例其实增长不大,反而很吃处理性能。 
另一方面,压缩一定要和静态资源缓存相结合,缓存压缩后的版本,否则每次都压缩高负载下服务器肯定吃不住。
gzip_comp_level 1;
# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;
# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";

2、 服务器缓存(效果明显)

为了提高服务器获取数据的速度,nginx缓存着静态资源是非常必要的。如果是测试服务器对html应该不设置缓存,而js等静态资源环境因为文件尾部会加上一个hash值,这可以有效实现缓存的控制。

nginx  config.js中加入

location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ { 
  access_log   off; 
  expires      30d;
}
location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
  access_log   off;
  expires      24h;
}
location ~* ^.+\.(html|htm)$ {
  expires      1h;
}

图片缓存机制

http {
   proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=imgcache:100m inactive=1d max_size=10g;
   server {
       location ~* ^.+\.(js|ico|gif|jpg|jpeg|png|html|htm)$ {
       log_not_found off;
       access_log off;
       expires 7d;
       proxy_pass http://img.example.com ;
       proxy_cache imgcache;
       proxy_cache_valid 200 302 1d;
       proxy_cache_valid 404 10m;
       proxy_cache_valid any 1h;
       proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
       }
   }
}

上面的代码将会使用一块最大100M的共享内存,用于硬盘上的文件索引,包括文件名和请求次数,每个文件在1天内若不活跃(无请求)则从硬盘上淘汰,硬盘缓存最大10G,满了则根据LRU算法自动清除缓存。

这种缓存方式为了更快的索引,采用hash分级来存储图片,图片目录结构和名称都变得面目全非,因此网页热点图片,必须通过其他途径统计

3、浏览器缓存

浏览器缓存是通过html的头文件中的meta来控制。http-equiv是一个专门针对http的头文件,可以向浏览器传回一些有用的信息。与之对应的content,是各个参数的变量值。

4、Promise请求

es6的其中一个特性就是原生支持promise。在这里,我先不说异步编程里的generator和aync/await的属性。它们功能的实现都是基于promise。
Promise的特点在于:
1、减少回调函数
2、串并行处理
3、代码的优雅

5、第三方库使用CDN引入!!(重要)

echarts使用npm引入,打包大小为3M,使用cdn后...自己体会!!

相关文章

  • vue 性能优化点

    vue项目中,经常会遇到一些性能优化点,以下就是我在工作中,总结的优化点 vue 性能优化点 1,路由懒加载 2,...

  • Vue笔记六:Vue项目的性能优化之路

    Vue笔记六:Vue项目的性能优化之路 我最近也经常面试外包同事。面试的时候,总会有个问题,“你说一下性能优化的手...

  • Vue3和Vue2的区别

    vue3 新增的亮点 Performance 性能优化 Tree-shaking 支持摇树优化 Compositi...

  • sammary

    vue-diff算法 react 性能优化 diff算法 ,局部更新DOMshouldComponentUpdat...

  • react shouldComponentUpdate

    对比vue,性能优化对react更加重要,shouldComponentUpdate又是react中性能重要的一个...

  • [性能优化]Webpack篇

    参考文章:Vue 项目性能优化 — 实践指南(网上最全 / 详细) Webpack 对图片进行压缩 在 vue 项...

  • 【前端性能优化】vue性能优化

    一、template v-show,v-if 用哪个?第一个维度是权限问题,只要涉及到权限相关的展示无疑要用 v-...

  • vue 性能优化

    前言 一般来说,你不需要太关心vue的运行时性能,它在运行时非常快,但付出的代价是初始化时相对较慢。在最近开发的一...

  • Vue性能优化

    性能优化的手段 目标:降低打包后文件大小,提高首屏加载速度 手段: 1.懒加载 运用懒加载则可以将路由对应的页面组...

  • vue性能优化

    1、基础优化 针对HTML、CSS、JS 做第一步优化。对于vue文件中,我们优化的就是tempalte、styl...

网友评论

      本文标题:Vue性能优化

      本文链接:https://www.haomeiwen.com/subject/vpkmahtx.html