JS:浏览器架构和事件循环(*****高阶五颗星)

1.早期浏览器

早期浏览器是单进程程序和多线程进程(页面线程(负责解析js,plugin执行,draw),网络线程(request)、其他线程(file,storage)等)

产生的问题?

  1. 页面线程效率低:因为js的执行,插件执行,页面解析和渲染都运行在该线程里
  2. 页面不稳定:一个线程崩溃,整个浏览器

2.现代浏览器架构

1.多进程的浏览器

1.主进程:

  1. 浏览器界面
  2. 用户交互
  3. 管理子进程
  4. 提供存储功能

2.网络进程

负责网络资源的请求和接受。

3.GPU进程

驱动chrome利用GPU的最初的动力是3D CSS,对页面渲染的加速

4.插件进程

讲插件分成单独的进程,防止插件造成的页面崩溃或者不安全的问题,形成一个沙箱模式,因为插件是不安全的,可能会导致浏览器崩溃。

沙箱模式:

SANDBOX(沙箱)是指一种技术,在这种技术中,软件运行在操作系统受限制的环境中。这样比较安全。

5.渲染进程(内核)

渲染进程是多线程的进程,也是运行在沙箱环境中的,因为网页是不安全的,会可能注入一些不安全的代码,为了确保这个页面的安全。渲染进程的核心是渲染引擎和js解析引擎。渲染引擎和js解析引擎都在渲染进程的主线程中,所以两个是不能同时进行的。

不同内核的浏览器:

  • WEBKIT 内核:SAFARI / CHROME 等
  • GECKO 内核 :NETSCAPE6 及以上版本 / FIREFOX / MOZILLASUITE /SEAMONKEY 等
  • TRIDENT( MSHTML)内核 : IE9- / MAXTHON / TT / THE WORLD / 360搜狗浏览器 / 腾讯浏览器等
  • PRESTO 内核:

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

前端面试题 文章被收录于专栏

前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理

全部评论

相关推荐

废铁汽车人:秋招真是牛鬼蛇神齐聚一堂
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务