1.浏览器渲染页面步骤

  • 浏览器基于http/https(tcp)向服务器发送请求
  • 服务器接受请求,把对应的资源文件找到
  • 服务器端会把对应的资源文件中的”源代码”返回给客户端的浏览器
  • 客户端浏览器分配一个主线程用来自上而下渲染代码(浏览器是多线程的,但是渲染解析代码只分配一个线程处理,所以前端代码渲染是单线程的)
  • 渲染解析过程中遇到的link script img等外链资源时,浏览器会分配一个新的线程去请求资源文件,同时主线程继续渲染DOM树,具体渲染过程如下图所示
  • JS也是单线程的(大部分都是同步任务)也有异步任务
  • 定时器
  • 事件绑定
  • AJAX数据请求
  • 回调函数
  • Promise/async/await
  • 以上这些都是使用异步的方式来处理的