前端学堂
学有所用

浏览器的JS事件循环

这部分其实也很好理解,结合前面学习的浏览器的多进程架构 ( 浏览器渲染原理 ),我们知道渲染进程负责页面的渲染工作。渲染进程的核心是Blink引擎,Blink引擎负责html、dom解析、布局、渲染,Blink包含一个主线程,多个Worker线程(事件处理线程,http网络线程,定时器任务线程,文件系统处理线程等等),还有一些其他的线程。几乎所有重要的工作都运行在主线程上。包括运行JavaScript(除了Workers),DOM生成,CSS样式和布局计算等,所以交互性能的优化关键主要围绕主线程。

Blink会为Web workers,Service workers创建出独立的线程。虽然运行的都是JavaScript,但主线程与worker线程的运行环境是不共享的,需要通过消息来传递数据。在Chrome中,每个渲染进程都有一个V8 Isolate,所有被同一个渲染进程处理的站点的JavaScript代码在同一个Isolate中运行。但对于Web worker,每一个worker则拥有自己的Isolate。

我们说浏览器中的JS事件循环机制其实也就是指Blink的这种多线程的处理机制。

 

赞(0) 打赏
一分也是爱,觉得好请我喝杯咖啡吧!前端学堂 » 浏览器的JS事件循环

一分也是爱,觉得好请我喝杯咖啡吧!

支付宝扫一扫打赏

微信扫一扫打赏