Webcourse/01-HTML/02-浏览器的介绍.md
2020-04-01 16:18:21 +08:00

107 lines
3.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 常见的浏览器
浏览器是网页运行的平台常见的浏览器有谷歌ChromeSafari火狐FirefoxIEEdgeOpera等如下图所示
![](http://img.smyhvae.com/20191204_1900.png)
我们重点需要学习的是 Chrome 浏览器
## 浏览器的市场占有份额
浏览器的市场占有份额<https://tongji.baidu.com/research/site?source=index#browser>
![](http://img.smyhvae.com/20200322_1058.png)
上面这张图的统计时间是2020年2月
## 浏览器的组成
浏览器分成两部分
- 1渲染引擎浏览器内核
- 2JS 引擎
### 1渲染引擎浏览器内核
浏览器所采用的渲染引擎也称之为浏览器内核用来解析 HTML与CSS渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息
**渲染引擎是浏览器兼容性问题出现的根本原因**
渲染引擎的英文叫做 Rendering Engine通俗来说它的作用就是读取网页内容计算网页的显示方式并显示在页面上
常见浏览器的内核如下
|浏览器 | 内核|
|:-------------:|:-------------:|
| chrome | Blink |
| 欧鹏 | Blink |
|360安全浏览器| Blink|
|360极速浏览器| Blink|
|Safari|Webkit|
|Firefox 火狐|Gecko|
|IE| Trident |
备注360的浏览器以前使用的IE浏览器的Trident内核但是现在已经改为使用 chrome 浏览器的 Blink内核
另外移动端的浏览器内核是什么大家可以自行查阅资料
### 2JS 引擎
也称为 JS 解释器 用来解析网页中的JavaScript代码对其处理后再运行
浏览器本身并不会执行JS代码而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码 JS 引擎执行时会逐行解释源码转换为机器语言然后由计算机去执行
浏览器本身并不会执行JS代码而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码 JS 引擎执行代码时逐行解释每一句源码转换为机器语言然后由计算机去执行所以 JavaScript 语言归为脚本语言会逐行解释执行
常见浏览器的 JS 引擎如下
|浏览器 | JS 引擎|
|:-------------:|:-------------|
|chrome / 欧鹏 | V8 |
|Safari|Nitro|
|Firefox 火狐|SpiderMonkey1.0-3.0/ TraceMonkey3.5-3.6/ JaegerMonkey4.0-|
|Opera|Linear A4.0-6.1/ Linear B7.0-9.2/ Futhark9.5-10.2/ Carakan10.5-|
|IE|Trident |
参考链接
- [主流浏览器内核及JS引擎](https://juejin.im/post/5ada727c518825670b33a584)
## 浏览器工作原理
> 这一小段有些深入小白可以暂时跳过以后再来看
![](http://img.smyhvae.com/20180124_1700.png)
1User Interface 用户界面我们所看到的浏览器
2Browser engine 浏览器引擎用来查询和操作渲染引擎
3Rendering engine 用来显示请求的内容负责解析HTMLCSS
4Networking 网络负责发送网络请求
5JavaScript Interpreter(解析者) JavaScript解析器负责执行JavaScript的代码
6UI Backend UI后端用来绘制类似组合框和弹出窗口
7Data Persistence(持久化) 数据持久化数据存储 cookieHTML5中的sessionStorage
参考链接
- <https://www.2cto.com/kf/201202/118111.html>
## 我的公众号
想学习**代码之外的技能**不妨关注我的微信公众号**千古壹号**
扫一扫你将发现另一个全新的世界而这将是一场美丽的意外
![](http://img.smyhvae.com/20200101.png)