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%内容,订阅专栏后可继续查看/也可单篇购买

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

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

全部评论

相关推荐

08-28 16:31
已编辑
上海大学 数据分析师
点赞 评论 收藏
分享
冰激凌好吃:谁知盘中餐,谁都不一般😗
点赞 评论 收藏
分享
08-19 18:59
已编辑
绍兴文理学院 Java
一只末影酱:一、1w+qps嘛感觉数据有点太夸张了 二、还有就是99.95%这些,本身大部分学生做的小项目基本是100%,因为量太小了,网络抖动问题也基本模拟不出来,感觉这些不太好写 三、你这些项目,都是一个月就做完了,更抽象了,也就是大概意味着,没有技术调研,没有上线测试,
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务