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

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

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

全部评论

相关推荐

FOX2003:还没学后端框架吧,看你第一个项目用的mockjs。第一个项目太老而且可能是从github上扒的(我的课设就是这个),第二个主要依靠AI的能力,而且前端项目找前端实习的话,留个github地址好点,主要还是前端要求越来越高了。另外,去***看看,符合就投,boss投的多,HR工作量就大,没功夫多聊
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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