atitit..主流 浏览器 js 发动机  内核 市场份额 attialx总结vOa9

1. 浏览器内核 1

2. 浏览器的主要组件包含: 2

2.1. 主要组件体系结构 2

2.2. WebCore排版引擎及JavaScriptCore解析引擎,
3

2.3. 渲染引擎基本流程 3

3. 当前主流浏览器的引擎及浏览器: 4

3.1. Trident(MSHTML):IE 4

3.2. Presto:Opera7及以上 4

3.3. Gecko:Firefox 4

3.4. KHTML(衍生出WebKit ):Safari、Konqueror,Chromium
4

4. 二、JavaScript引擎 5

4.1. 1、Chakra  查克拉。IE9启用的新的JavaScript引擎。

5

4.2. 2、SpiderMonkey / TraceMonkey / JaegerMonkey,FF 5

4.3. 3、V8  应用于Chrome、傲游3。

5

4.4. 4、Nitro  应用于Safari 4及兴许的版本号。
5

4.5. 5、Linear A/Linear B/Futhark/Carakan,,Opera 5

4.6. 6、KJS  KHTML相应的JavaScript引擎。
5

5. 浏览器市场份额and来源 5

5.1. 来自Net Applications的最新市场份额数字 6

5.2. StatCounter的统计数据方面 6

6. 參考: 6

1. 浏览器内核 

浏览器最重要或者说核心的部分是“Rendering Engine”, 只是我们一般习惯将之称为“浏览器内核

内核仅仅是一个通俗的说法,其英文名称为“Layout engine”,翻译过来就是“排版引擎”,也被称为“页面渲染引擎”(下文中各种说法通用)。

它负责取得网页的内容(HTML、XML、图像等等)、整理信息(比如增加CSS等)。以及计算网页的显示方式,然后会输出至显示器或打印

作者:: 老哇的爪子 Attilax 艾龙。  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

2. 浏览器的主要组件包含:

1. 用户界面- 包含地址栏、后退/前进button、书签文件夹等。也就是你所示除了用来显示你所请求页面的主窗体之外的其它部分

2. 浏览器引擎- 用来查询及操作渲染引擎的接口

3. 渲染引擎- 用来显示请求的内容。比如,假设请求内容为html,它负责解析html及css。并将解析后的结果显示出来

4. 网络- 用来完毕网络调用,比如http请求,它具有平台无关的接口,能够在不同平台上工作

5. UI 后端- 用来绘制类似组合选择框及对话框等基本组件。具有不特定于某个平台的通用接口,底层使用操作系统的用户接口

6. JS解释器- 用来解释运行JS代码

7. 数据存储- 属于持久层。浏览器须要在硬盘中保存类似cookie的各种数据,HTML5定义了web database技术,这是一种轻量级完整的client存储技术

2.1. 主要组件体系结构

内核》》Rendering Engine》》js engine

图1:浏览器主要组件

须要注意的是。不同于大部分浏览器,Chrome为每一个Tab分配了各自的渲染引擎实例,每一个Tab就是一个独立的进程。

2.2.  WebCore排版引擎及JavaScriptCore解析引擎,

2.3. 渲染引擎基本流程

渲染引擎首先通过网络获得所请求文档的内容,通常以8K分块的方式完毕。

以下是渲染引擎在取得内容之后的基本流程:

解析html以构建dom树->构建render树->布局render树->绘制render树

图2:渲染引擎基本流程

渲染引擎開始解析html,并将标签转化为内容树中的dom节点。接着,它解析外部CSS文件及style标签中的样式信息。这些样式信息以及html中的可见性指令将被用来构建还有一棵树——render树。

Render树由一些包括有颜色和大小等属性的矩形组成。它们将被依照正确的顺序显示到屏幕上。

Render树构建好了之后。将会运行布局过程。它将确定每一个节点在屏幕上的确切坐标。再下一步就是绘制。即遍历render树。并使用UI后端层绘制每一个节点。

值得注意的是。这个过程是逐步完毕的。为了更好的用户体验。渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到全部的html都解析完毕之后再去构建和布局render树。它是解析完一部分内容就显示一部分内容,同一时候。可能还在通过网络下载其余内容。

3. 当前主流浏览器的引擎及浏览器:

3.1. Trident(MSHTML):IE

3.2. Presto:Opera7及以上

3.3. Gecko:Firefox

3.4. KHTML(衍生出WebKit ):Safari、Konqueror,Chromium

 编注:WebKit 是一个开源的浏览器引擎,与之对应的引擎有Gecko(Mozilla Firefox 等使用的排版引擎)和Trident(也称为MSHTML。IE 使用的排版引擎)。同一时候WebKit 也是苹果Mac OS X 系统引擎框架版本号的名称,主要用于Safari,Dashboard。Mail 和其它一些Mac OS X 程序。WebKit 所包括的 WebCore 排版引擎和 JSCore 引擎来自于 KDE 的 KHTML 和 KJS。当年苹果比較了 Gecko 和 KHTML 后,仍然选择了后者,就由于它拥有清晰的源代码结构、极快的渲染速度。

Presto:ms速度快的..

5、Chromium(跨平台)

事实上 Chromium 就是 WebKit,维基百科里面并没有将Chromium从WebKit分出来,这个区分全然是基于我个人的恶趣味。记得曾经看过一个大牛的博文说过。Chromium把WebKit的代码梳理得可读性提高非常多,所以曾经可能须要一天进行编译的代码,如今仅仅要两个小时就能搞定。这个我自己也没有考究过,可是预计可信。

这个也能解释为什么Gecko和WebKit出来了这么久,第三方编译、定制的版本号并不多,可是由Chromium衍生出来的浏览器早就满坑满谷了。

常见的Chromium内核的浏览器:Google Chrome、Chromium、SRWare Iron、Comodo Dragon

4. 二、JavaScript引擎

Opera在JavaScript引擎的跑分上面一直都是非常牛逼的,一般来说最新測试版之间PK,Opera基本都会夺冠。

4.1. 1、Chakra  查克拉,IE9启用的新的JavaScript引擎。

4.2. 2、SpiderMonkey / TraceMonkey / JaegerMonkey,FF

SpiderMonkey应用在Mozilla Firefox 1.0-3.0。TraceMonkey应用在Mozilla Firefox 3.5-3.6版本号,JaegerMonkey应用在Mozilla Firefox 4.0及兴许的版本号。

4.3. 3、V8  应用于Chrome、傲游3。

4.4. 4、Nitro  应用于Safari 4及兴许的版本号。

4.5. 5、Linear A/Linear B/Futhark/Carakan,,Opera

Linear A应用于Opera 4.0-6.1版本号。Linear B应用于Opera 7.0~9.2版本号,Futhark应用于Opera 9.5-10.2版本号,Carakan应用于Opera 10.5及兴许的版本号。

4.6. 6、KJS  KHTML相应的JavaScript引擎。

5. 浏览器市场份额and来源

pc浏览器市场份额:::ie , ff ,chrome 都是30% ,safari 6% 手机浏览器 Safari 50%。 android 20%,opera 10%,chrome 10%

5.1. 来自Net Applications的最新市场份额数字

5.2. StatCounter的统计数据方面

6. 參考:

[科普文] 关于浏览器内核的一些小知识,明明确白选浏览器。.htm

2013年10月份全球主流浏览器市场份额排行榜 _ 浏览迷.htm

2013年8月全球浏览器市场占有率排行榜 - 免费绿色软件下载,共享软件基地,破解绿色软件免费下载 - 统一下载站.htm

2014年8月份国内主浏览器市场份额排行榜 - 看引擎 KENGINE _ 看看新闻网 IT资讯.htm

浏览器是怎样工作的?(工作原理) - IE浏览器中文站点.htm

版权声明:本文博主原创文章,博客,未经同意不得转载。

atitit..主流 浏览器 js 发动机 内核 市场份额 attialx总结vOa9的更多相关文章

  1. atitit..主流 浏览器 js 引擎 内核 市场份额 attialx总结vOa9

    atitit..主流 浏览器 js 引擎  内核 市场份额 attialx总结vOa9 1. 浏览器内核 1 2. 浏览器的主要组件包括: 2 2.1. 主要组件体系结构 2 2.2. WebCore ...

  2. 主流浏览器js 引擎内核市场份额attialx总结vOa9

    原文: http://blog.csdn.net/attilax/article/details/40016... 时间: 2014-10-12 atitit.. 主流浏览器 js 引擎 内核 市场份 ...

  3. [Web 前端 ] 五大WEB主流浏览器及四大内核

    现在国内常见的浏览器有:IE.Firefox.Safari.Opera.Google Chome.QQ浏览器.搜狗浏览器.百度浏览器.猎豹浏览器.UC浏览器.360浏览器.遨游浏览器.世界之窗浏览器等 ...

  4. js导出execl兼容ie Chrome Firefox各种主流浏览器(js export execl)

    第一种导出table布局的表格 <html> <head> <meta charset="utf-8"> <script type=&qu ...

  5. js导出execl 兼容ie Chrome Firefox各种主流浏览器(js export execl)

    第一种导出table布局的表格 1 <html> 2 3 <head> 4 <meta charset="utf-8"> 5 <scrip ...

  6. 基于原生js的返回顶部组件,兼容主流浏览器

    基于原生js的返回顶部插件,兼容IE8及以上.FF.chrome等主流浏览器. js文件中封装了getScrollTop()和changeScrollTop()函数分别用于获取滚动条滚动的高度和修改滚 ...

  7. js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符

    js中对arry数组的各种操作小结   最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...

  8. 几大主流浏览器内核(Rendering Engine)

    "浏览器内核",英文为"Rendering Engine",也叫"渲染引擎",作用是帮助浏览器来渲染网页的内容,将页面内容和排版代码转换为用 ...

  9. js监听用户的键盘敲击事件,兼容各大主流浏览器

    js监听用户的键盘敲击事件,兼容各大主流浏览器 <script type="text/javascript"> document.onkeydown = functio ...

随机推荐

  1. 基于S5pv210流媒体server的实现之网络摄像头(by liukun321 咕唧咕唧)

    这里仅介绍流媒体server端的实现思路.及编码注意问题,不会贴代码的详细实现. 直接入正题先介绍一下系统硬件框架: server端连接PC机用VLC播放例如以下图: server端应用程序能够分为图 ...

  2. Git——git 上传时 遗漏文件解决办法

    今天在Server上建立一个git 库,把本地的code 上传到Server,再次clone下来时,发现少了些文件.原来git 工具不上上传一些二进制,pdf,.patch等一些文件.在上传时,git ...

  3. Android监控程序本身被卸载方法汇总

    本文章由Jack_Jia编写,转载请注明出处.   文章链接: http://blog.csdn.net/jiazhijun/article/details/10157901 作者:Jack_Jia ...

  4. 全然符合package.json在CommonJS中的规范

    众所周知,package.json是CommonJS规定的用来描写叙述包的文件,全然符合规范的package.json文件应该含有一下字段. name:包的名称,必须是唯一的.由小写英文字母.数字和下 ...

  5. 移动开发平台-应用之星app制作教程

    目前在AppStore.GooglePlay等应用商店里已经有以百万计的Apps,应用程序使移动互联网空间得以无限拓展.很多人梦想着AngryBirds式的奇迹在自己身上发生,他们渴望自己开发的应用程 ...

  6. linux+nginx+mysql+php

    LNMP(linux+nginx+mysql+php)服务器环境配置   一.简介 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为 “engine X”, 是一个高性能的 ...

  7. 【译】ASP.NET MVC 5 教程 - 8:搜索查询

    原文:[译]ASP.NET MVC 5 教程 - 8:搜索查询 添加一个搜索的方法和搜索的视图 在本节中,我们为 Index 方法添加查询功能,使我们能够根据电影的题材或名称进行查找. 修改 Inde ...

  8. 聊聊高并发(三十八)解析java.util.concurrent各个组件(十四) 理解Executor接口的设计

    JUC包中除了一系列的同步类之外,就是Executor运行框架相关的类.对于一个运行框架来说,能够分为两部分 1. 任务的提交 2. 任务的运行. 这是一个生产者消费者模式,提交任务的操作是生产者,运 ...

  9. unity中的MonoBehaviour.OnMouseDown()

    在官网的api文档中仅说明了 Description OnMouseDown is called when the user has pressed the mouse button while ov ...

  10. thinkphp框架的相关总结

    参考链接地址:http://gongwen.sinaapp.com/article-205.html 1. 模板中不能使用的标签 {$content} {$i} 2. If标签 如: <if c ...