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