为什么要了解浏览器的这些机制,为了性能优化

1.加载:引用外部css,js文件时,把它们放到合适的位置,使浏览器更快的加载
2.解析:构建DOM结构,组织css选择器时,选择最优的写法,提高浏览器的解析速率
3.渲染:减少‘重绘’

用户访问网页都发生了什么

1.进行域名解析,拿到IP地址之后,向对应的服务器发送请求
2.网络服务器接收请求,向数据库服务器发送请求
3.数据库服务器将请求的资源发送给网络服务器,网络服务器解析数据,放入http的response中,生成html文件,返回给客户端
4.浏览器解析http response
5.下载html,以及html中包含的外部引用文件css,js,图片等资源

常见的状态码

  • 200 成功
  • 304 请求资源在本地缓存
  • 400 客户端请求格式有误,服务器无法解析
  • 401 要求用户进行身份验证
  • 500 服务器内部错误 无法完成请求

加载

浏览器的5个常驻线程

  • GUI渲染线程
  • js引擎线程
  • 定时器的执行线程
  • 事件触发线程
  • http异步请求线程

预加载网页,利用空余时间来提前加载该网页的后续网页。

页面的渲染(reflow)和重绘(repaint)