[关闭]
@a06062125 2016-01-16T17:42:01.000000Z 字数 2415 阅读 542

浏览器工作原理

javascript, 浏览器引擎, 排版引擎, 图形引擎, js引擎


  1. 我们常说的浏览器引擎, 浏览器内核, js引擎, 渲染引擎等等,具体是干什么的
  2. js engine是干什么的, 都有哪些实现
  3. 常用浏览器、国内浏览器分别使用什么引擎

概念


浏览器

现有浏览器

来源百度统计
浏览器市场份额报告_2015.10-2015.12.jpg-172.1kB

Browser Rendering Engine JavaScript Engine
IE and Edge Trident Chakra
Chrome Blink V8
firefox Gecko Spidermonkey
Safari Webkit JavaScriptCore
Opera Blink(早期presto) JavaScriptCore
360se 混合 V8
360cse Blink V8
sogou 混合 V8
QQ 混合 , Trident + Chromium 47 V8
2345 混合 V8
猎豹 混合, Trident + Chromium 42 V8
baidu 混合, Trident + Chromium 42 (基于Blink) V8

其中Chromium是基于Blink的


浏览器引擎

功能

浏览器引擎(我们常说的'浏览器内核'), 也叫渲染引擎(rendering engine)、布局引擎(layout engine);

KDE的开放源代码KHTML引擎用于KDE的Konqueror网页浏览器,后来成为WebKit的基础,是Apple的Safari和Google的Chrome网页浏览器的渲染引擎,根据StatCounter的统计是目前最广泛使用的浏览器引擎。目前的Chromium/Chrome(iOS版除外)与Opera版本则是基于Blink,WebKit的一个分支。

Gecko,Mozilla开放源代码项目的网页浏览器引擎,被各种来自基于Mozilla代码的派生应用所使用,包括Firefox网页浏览器、Thunderbird电子邮件客户端以及SeaMonkey网络包。

Trident,Internet Explorer的网页浏览器引擎,使用于Microsoft Windows平台的许多应用程序,如netSmart、Outlook Express、Microsoft Outlook的一些版本和Winamp、RealPlayer中的迷你浏览器。

Opera软件公司的专有Presto引擎授权给其他一些软件供应商,使用Opera自家的网页浏览器,直到2013年它被Blink引擎取代。

更多

Browser, Headless Browser, or Runtime Layout Engine
Blink Chrome (28+), Opera (15+), Amazon Silk, 其它的Chromium-based浏览器和框架, 如Android's (4.4+) WebView)
Webkit Opera, safari
Trident IE
Gecko Firefox
Presto 原来opera的浏览器引擎,2013年它被Blink引擎取代

JS引擎

JavaScript Engine Browser, Headless Browser, or Runtime
V8 chrome , Node.js, Io.js*, TrifleJS
Chakra IE and Edge
JavaScriptCore Safari, PhantomJS
Spidermonkey Mozilla
Rhino(JavascriptCore升级版) HTMLUnit

功能

将源代码编译(遵循ECMA-262 等规范)成机器码(parser可能会产生字节码), (优化)并执行

实现





others

Lint zhen

lint 可以检测代码中的常见错误:
1. 行尾没写分号;
2. 没有if , for, while等的花括号;
- JSLint 希望 if、while、do 和 for语句都由块生成,{也就是说,语句是被大括号包住的 }。
3. 无用代码(由return, throw, continue, 或者break 产生的);
4. 没有break声明的switch分支条件声明;
5. A leading zero that turns a number into octal (base 8)
6. 嵌套注释
7. 换行造成的两行代码是否为同一个语句声明的歧义
8. 无用声明;
9. 等等


引用

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注