《高性能 JavaScript》笔记

2015年自学的时候看网上有个人的推荐买的,这么些年一直没看,前两天翻出来发现里面大多数的内容都已经不适用了,所以以后技术类的书应该不会再买纸质的了,技术的发展迭代实在是太快了。

将多个脚本文件合并成一个,减少请求次数;
将脚本文件放在文档底部,避免阻塞页面加载;

如果不是写原生的话,这两条基本用不上,框架都已经做好了

标识符解析的性能:location.href 比 window.location.href 要快,应为少了一层作用域链的搜索

这个……二三十年前这条优化应该还是比较有用的吧

重排(reflow)与重绘(repaint)

浏览器下载完所有页面组件(html,css,js,图片)后会生成两个内部数据结构:

  • DOM 树,表示页面结构
  • 渲染树,表示 DOM 节点该如何显示(对应到 css 就是盒子模型)
    这两个内部结构生成完之后,浏览器就开始绘制页面
    当 DOM 的变化影响了元素的几何属性(宽和高),浏览器就要重新计算元素的几何属性,同时计算其他受到影响的元素的几何属性和位置,重新构造渲染树,这个过程叫做重排,重排之后需要重新绘制,叫做重绘。改变元素的背景色不会影响宽和高,因此只会触发重绘。

重排何时发生:

  • 增删 DOM 元素
  • 元素位置改变
  • 元素尺寸改变(盒子模型)
  • 内容改变(文本或图片被另一个不同尺寸的图片替代)
  • 浏览器窗口尺寸改变

这个是全书最有价值的内容了,辅助理解了浏览器的工作原理

使用定时器进行性能优化的理念,有两个套路贯彻了,防抖和节流,这个用的时候搜索即可。

你可能感兴趣的:(《高性能 JavaScript》笔记)