1⃣️ 浏览器概念简述:
浏览器(browser application)是用来访问和浏览万维网页面的客户端软件,也是现代计算机系统中应用最为广泛的软件之一,重要性也可想而知,也是我们前端工程师经常打交道的;
2⃣️ 浏览器的组成部分:
1. 用户界面:
用户界面主要包括:地址栏,后退/前进按钮,书签目录等;(除了从服务器请求到的网页窗口)
2. 浏览器引擎:
用来查询及操作渲染引擎的接口;
3. 渲染引擎:
用来显示请求的html内容;(包括样式,图片,js)
4. 网络:
主要是来完成网络调用,例如http请求,它具有平台无关的接口,可以在不同平台上工作;
5. UI后端:
用来绘制类似组合选择框及对话框等基本组件,具有不特定于某个平台的通用接口,底层使用操作系统的用户接口。
6. JS解释器 :
用来解释执行JS代码;
7. 数据存储:
属于持久层,浏览器需要在硬盘中保存类似cookie的各种数据,HTML5定义了web database技术,这是一种轻量级完整的 客户端存储技术;
3⃣️ 内核:
浏览器的内核可分成两部分:
渲染引擎和js 引擎;(注:我们常说的浏览器内核就是指渲染引擎)
由于js 引擎越来越独立,内核就指的只是渲染引擎了,渲染引擎主要用来请求网络页面资源解析排版后呈现给用户;
渲染引擎可以渲染html和xml文档及图片,它也可以借助插件显示其他类型数据,例如使用PDF阅读器插件,可以显示PDF格式;
4⃣️ 主流浏览器用的渲染引擎(内核)都各是什么:
fire-fox :gecko引擎;
IE:Trident引擎;(在2015年微软推出自己的新浏览器,名叫斯巴达后改edge,故使得是edge引擎)
opera:Presto引擎,后弃用;
chrome\safari\opera: webkit引擎,13年chrome和opera开始使用Blink引擎;
UC:U3引擎;
QQ和微信 :X5引擎,16年开始使用Blink引擎;
5⃣️ 主流浏览器都各用的什么js引擎:
老版本IE使用Jscript引擎;
IE9之后使用Chakra引擎;
edge浏览器仍然使用Chakra引擎;
firefox使用monkey系列引擎;
safari使用的SquirrelFish系列引擎;
Opera使用Carakan引擎;
chrome使用V8引擎;(nodeJs其实就是封装了V8引擎)