第三篇《性能优化》

减少体积

  • 利用webpack等压缩工具(js压缩,css压缩,img压缩)
  • 提供公共方法,第三方库
  • gzip压缩
  • http2

合理分配CDN资源和域名

每个游览器的同一域名下的在相同时间段内有一个最大连接数
合理分配不同的域名,可以让游览器更快的进行请求,不至于堵塞

缓存

网络资源,缓存,更快的进入页面
对第一次进入页面美业影响,对第二次及为需要更新时,影响最为明显
如果需要更新:
进入页面时判断当前版本号是否与所需版本号一致,不一致进行更新
还可以部分数据缓存,例如:localStorage

对资源进行后加载或者换种方法加载

瀑布流图片,懒加载,先出现骨架屏
webp图片,判断UA头,加载不同后缀的图片
兼容js可以判断UA头,进行加载
单页面应用按需加载

减少DNS查询

避免重定向

js性能提升

  • 减少dom操作
  • 避免阻塞
  • 适当使用节流和防抖,可以提升很大的用户体验
  • 动画优先考虑css动画
  • 代码优化
    • 作用域
访问当前作用域之外的变量时间会增加,所以 访问全局变量总是比访问局部变量要慢,因为需要遍历作用域链。只要能减少花费在作用域链上的时间,就能增加脚本的整体性能。
​ // 通过创建一个指向document的局部变量,就可以通过限制一次全局查找来改进此函数的性能。function updateUI() {
var doc =  document,
imgs = doc.getElementByTagName("img");
for(var i = 0, len = imgs.length; i < len; i++) {
    imgs[i].title = doc.title + " image " + i;
}}
  • 减少DOM操作
DOM操作应该是脚本中最耗性能的一类操作,例如增加、修改、删除 元素或者对 DOM集合进行操作。如果脚本中包含了大量的 DOM操作则需要注意
限制使用JavaScript来修饰网页布局,把针对访问元素的引用缓存起来。有时,当你的网站依赖大量的DOM改动时,就应该考虑限制你的标记。这
DOM操作还需要考虑浏览器的 Reflow和Repaint ,因为这些都是需要消耗资源的

对不同游览器区别对待

  • babel-prollfill并不是所有游览器都需要的
  • 还有目前有绝大多数的游览器已经支持语法
  • 可以对不支持的使用不支持的语法
  • 支持的使用支持的语法
  • 一个是代码量减少,
  • 一个是运行速度也会加快
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼叔子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值