(2). 从设计实现层面简化页面
如果你的页面像百度首页一样简单,那么接下来的规则基本上都用不着了 。保持页面简洁、减少资源的使用时最直接的 。如果不是这样,你的页面需要华丽的皮肤,则继续阅读下面的内容 。
(3). 合理设置HTTP缓存
缓存的力量是强大的,恰当的缓存设置可以大大的减少HTTP请求 。以有啊首页为例,当浏览器没有缓存的时候访问一共会发出78个请求,共600多K 数据(如图1.1),而当第二次访问即浏览器已缓存之后访问则仅有10个请求,共20多K数据(如图1.2) 。(这里需要说明的是,如果直接F5刷新页面 的话效果是不一样的,这种情况下请求数还是一样,不过被缓存资源的请求服务器是304响应,只有Header没有Body,可以节省带宽)
怎样才算合理设置?原则很简单,能缓存越多越好,能缓存越久越好 。例如,很少变化的图片资源可以直接通过HTTP Header中的Expires设置一个很长的过期头;变化不频繁而又可能会变的资源可以使用Last-Modifed来做请求验证 。尽可能的让资源能够 在缓存中待得更久 。
(4). 资源合并与压缩
如果可以的话,尽可能的将外部的脚本、样式进行合并,多个合为一个 。另外,css、Javascript、Image都可以用相应的工具进行压缩,压缩后往往能省下不少空间 。
(5). CSS Sprites
合并CSS图片,减少请求数的又一个好办法 。
(6). Inline Images
使用data: URL scheme的方式将图片嵌入到页面或CSS中,如果不考虑资源管理上的问题的话,不失为一个好办法 。如果是嵌入页面的话换来的是增大了页面的体积,而且无法利用浏览器缓存 。使用在CSS中的图片则更为理想一些 。
(7). Lazy Load Images
这条策略实际上并不一定能减少HTTP请求数,但是却能在某些条件下或者页面刚加载时减少HTTP请求数 。对于图片而言,在页面刚加载的时候可以只 加载第一屏,当用户继续往后滚屏的时候才加载后续的图片 。这样一来,假如用户只对第一屏的内容感兴趣时,那剩余的图片请求就都节省了 。有啊首页曾经的做法 是在加载的时候把第一屏之后的图片地址缓存在Textarea标签中,待用户往下滚屏的时候才“惰性”加载 。
11、你了解的浏览器的重绘和回流导致的性能问题参考答案
重绘(Repaint)和回流(Reflow)
重绘和回流是渲染步骤中的一小节,但是这两个步骤对于性能影响很大 。
- 重绘是当节点需要更改外观而不会影响布局的,比如改变 color就叫称为重绘
- 回流是布局或者几何属性需要改变就称为回流 。
所以以下几个动作可能会导致性能问题:
- 改变 window 大小
- 改变字体
- 添加或删除样式
- 文字改变
- 定位或者浮动
- 盒模型
- 当 Event loop 执行完 Microtasks 后,会判断 document 是否需要更新 。因为浏览器是 60Hz 的刷新率,每 16ms 才会更新一次 。
- 然后判断是否有 resize或者 scroll,有的话会去触发事件,所以 resize和 scroll事件也是至少 16ms 才会触发一次,并且自带节流功能 。
- 判断是否触发了 media query
- 更新动画并且发送事件
- 判断是否有全屏操作事件
- 执行 requestAnimationFrame回调
- 执行 IntersectionObserver回调,该方法用于判断元素是否可见,可以用于懒加载上,但是兼容性不好
- 更新界面
- 以上就是一帧中可能会做的事情 。如果在一帧中有空闲时间,就会去执行 requestIdleCallback回调 。
- 使用 translate 替代 top
<div class="test"></div><style>.test {position: absolute;top: 10px;width: 100px;height: 100px;background: red;}</style><script>setTimeout(() => {// 引起回流document.querySelector('.test').style.top = '100px'}, 1000)</script> - 使用 visibility替换 display: none,因为前者只会引起重绘,后者会引发回流(改变了布局)
推荐阅读
- 黑茶天尖是什么茶?
- AMD|AMD Zen4锐龙“龙凤胎”来了:55W功耗、游戏本终于满血
- 三星|旗舰机要换代了!UFS 4.0闪存正式发布:读取可达4200MB/s、速度翻番
- 想摸鱼吗?先掌握这 19 个 css 技巧
- 靠着5个自媒体,新手小白如何赚取第一桶金?
- mysql误删除恢复
- Window查看和杀掉进程
- C++可变参模板
- 路虎|路虎极光“GTA”式越野 一飞冲天!结果惨了:减震、悬架全报废
- 私处面相看你能否聚财