主流浏览器js 引擎内核市场份额attialx总结vOa9
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.1. 来自Net Applications的最新市场份额数字6
1. 浏览器内核
浏览器最重要或者说核心的部分是“Rendering Engine”, 不过我们一般习惯将之称为“浏览器内核
内核只是一个通俗的说法,其英文名称为“Layout engine”,翻译过来就是“排版引擎”,也被称为“页面渲染引擎”(下文中各种说法通用)。 它负责取得网页的内容(HTML、XML、图像等等)、整理信息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印
作者::老哇的爪子Attilax艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
2. 浏览器的主要组件包括:
1. 用户界面- 包括地址栏、后退/前进按钮、书签目录等,也就是你所看到的除了用来显示你所请求页面的主窗口之外的其他部分
2. 浏览器引擎- 用来查询及操作渲染引擎的接口
3. 渲染引擎- 用来显示请求的内容,例如,如果请求内容为html ,它负责解析html及css ,并将解析后的结果显示出来
4. 网络- 用来完成网络调用,例如http请求,它具有平台无关的接口,可以在不同平台上工作
5. UI 后端- 用来绘制类似组合选择框及对话框等基本组件,具有不特定于某个平台的通用接口,底层使用操作系统的用户接口
6. JS 解释器- 用来解释执行JS代码
7. 数据存储- 属于持久层,浏览器需要在硬盘中保存类似cookie的各种数据, HTML5定义了web database技术,这是一种轻量级完整的客户端存储技术
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 、 Ch akra 查克拉, 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
主流浏览器js 引擎内核市场份额attialx总结vOa9的更多相关文章
- atitit..主流 浏览器 js 引擎 内核 市场份额 attialx总结vOa9
atitit..主流 浏览器 js 引擎 内核 市场份额 attialx总结vOa9 1. 浏览器内核 1 2. 浏览器的主要组件包括: 2 2.1. 主要组件体系结构 2 2.2. WebCore ...
- atitit..主流 浏览器 js 发动机 内核 市场份额 attialx总结vOa9
atitit..主流 浏览器 js 发动机 内核 市场份额 attialx总结vOa9 1. 浏览器内核 1 2. 浏览器的主要组件包含: 2 2.1. 主要组件体系结构 2 2.2. WebCor ...
- [Web 前端 ] 五大WEB主流浏览器及四大内核
现在国内常见的浏览器有:IE.Firefox.Safari.Opera.Google Chome.QQ浏览器.搜狗浏览器.百度浏览器.猎豹浏览器.UC浏览器.360浏览器.遨游浏览器.世界之窗浏览器等 ...
- 简单对比一下不同Windows操作系统在相同硬件配置的情况下浏览器js引擎的性能
最近部门进行Windows客户端的测试产品单点性能, 感觉不在通的windows版本以及浏览器内核的情况下性能可能有差异, 也一直没有找到一个比较好的对比工具, 今天用chrome的控制台简单测试了下 ...
- js导出execl兼容ie Chrome Firefox各种主流浏览器(js export execl)
第一种导出table布局的表格 <html> <head> <meta charset="utf-8"> <script type=&qu ...
- js导出execl 兼容ie Chrome Firefox各种主流浏览器(js export execl)
第一种导出table布局的表格 1 <html> 2 3 <head> 4 <meta charset="utf-8"> 5 <scrip ...
- 基于原生js的返回顶部组件,兼容主流浏览器
基于原生js的返回顶部插件,兼容IE8及以上.FF.chrome等主流浏览器. js文件中封装了getScrollTop()和changeScrollTop()函数分别用于获取滚动条滚动的高度和修改滚 ...
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
js中对arry数组的各种操作小结 最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...
- 浏览器内核与js引擎
摘要: 面试一个大公司的时候问到了一个问题,让我谈谈主要的浏览器内核以及他们的特点,当时并没有详细的回答,回来之后自己在网上找了找资料,总结了下分享给大家. 简介: 在维基百科上是这样介绍浏览器内核的 ...
随机推荐
- kettle 增量同步
http://www.cnblogs.com/inuyasha1027/p/Kettle_update_timestamp.html https://ask.hellobi.com/blog/yugu ...
- EXCEL宏做数据拆分
用处:将大容量的EXCEL工作簿分解成若干个小的工作簿 Sub aa() For i = 1 To 8 Set nb = Workbooks.Add nb.SaveAs Filename:=ThisW ...
- jeecg使用uploadify上传组件
在jeecg框架的系统内使用uploadify组件进行上传操作,有时无法正常发送请求,一直被重定向到登录请求,有可能使系统对上传操作进行了过滤,需要将这个上传请求放到非拦截序列里,才能正常使用. 第二 ...
- ie9/8的iframe中jQuery报错
此文章用于对工作中遇到的问题进行记录 jQuery 版本:1.9.1 按照一般的思路,jquery 1.x的是支持ie9及以下的,但是今天发现jquery报错了,代码错误位置在源码版本的第4888行 ...
- python+selenium面试题
selenium中如何判断元素是否存在? selenium中没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断. # 判断元素是否存在 try: dr.find_elem ...
- SDOJ 3696 Tree
描述 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有need条白色边的生成树. 题目保证有解. 输入 第一行V,E,need分别表示点数,边数和需要的白色边数. 接下来E行 每行 ...
- Python 调用multiprocessing模块下面的Process类方法(实现服务器、客户端并发)-UDP协议
#基于UDP协议的multiprocessing自定义通信 服务端: from multiprocessing import Process import socket def task(server ...
- hdoj--1045<dfs&二分图最大匹配>(这里是dfs解法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1045 题目描述: 在矩阵中放车,车可四面攻击,矩阵中有墙,可以防止攻击,给出墙的位置,输出最多可以放多 ...
- [UOJ#276]【清华集训2016】汽水
[UOJ#276][清华集训2016]汽水 试题描述 牛牛来到了一个盛产汽水的国度旅行. 这个国度的地图上有 \(n\) 个城市,这些城市之间用 \(n−1\) 条道路连接,任意两个城市之间,都存在一 ...
- 学习 JSP:第一步Eclipse+Tomcat+jre(配置环境)
[下载软件](例子version:版本号) Eclipse从官网下载(version:4.7)http://www.eclipse.org/downloads/ jre从官网下载(version:1. ...