前言

写本篇文章的初衷是追寻各浏览器对css、js实现性能而码,再说了,个人认为要做个负责前端应该要对其底层有所了解,这样在有的时候对bug能迅捷的对症下药。

小熊花了近6个小时搜索相关资料加上本身开发的一些经验总结出本篇。起初开始的小熊只知道IE核心、FF核心、OP核心等(前些年的主流浏览器),而如今风行的Safari(本文简称SF)和Chrome(本文简称GG),都是Webkit的开源核心,虽然代表是Safari,但感觉GG沾上google的光芒似乎在PC端上比SF更流行,咱开始详谈。

(本文偏向历史以及核心更新讲解,相对枯燥,若亲感觉对该类不感兴趣请和谐偶这篇文章)

四大核心

IE——Trident核心:

排版引擎:Trident

IE6:对盒模型以及DTD的更新(尽管这么更新了,咱还是觉得很多方面不行,是时候淘汰了啊 – -)。

IE7:咱最无奈的png32 alpha通道在这一代是修复了,其实主要是png32半透明通道的问题,IE6只能扛PNG8的全透明通道(IE6除非滤镜),其次是部分排版的问题(出名的float问题,还有多了一只猪和height归属是否应该找父层麻烦等哈哈。)

IE8:CSS3部分伪类跟上了(:after :before,多见著名的clearfix手段)。

IE9:HTML5、大批CSS3跟上进度了。

IE10:条件编译废除,filter废除(相当开心,对于filter hack不用愁了)css3渐变跟上(IE10结论为小熊检测得出)。

JS引擎:

早期(3~8)JScript

近期(9~10+)Chakra(音译貌似是查克拉 – -,鸣人蛋疼 – -)

使用该核心的浏览器们:

Avant Browser(前身为IeOpera)

Maxthon(前身为MyIE3.2、MyIE2)

GreenBrowser(前身亦为MyIE3.2)

TouchNet Browser

腾讯TT

GOSURF

世界之窗(TheWorld Browser)

MiniIE

Sleipnir

MyIE(新版4.x为GreenBrowser作者发布,3.2及之前版本为Maxthon、GreenBrowser、 iTreeSurf等浏览器的前身)

iTreeSurf(LovelyTree,前身亦为MyIE3.2)

PS:微软旗下开发的浏览器核心,早期与网景竞争的大头,最后以市场较大和采取一些和谐的手段(不解释,微软大家都懂的 – -)把网景市场硬是给压下去了。

FireFox——Gecko核心:

排版引擎:Gecko

JS引擎:

早期(1.0~3.0)SpiderMonkey:第一款JS引擎,由Brendan Eich在网景时编写。

(3.5~3.6)TraceMonkey:基于即时编译的引擎,其中部份程式码取自Tamarin引擎。

(4.0~至今)JagerMonkey:德文J?ger原意为猎人,结合追踪和组合码技术大幅提高效能,部分 技术借凿了V8、JavaScriptCore、SquirrelFish。

使用该核心的浏览器们:

Mozilla Application Suite *

Mozilla Firefox *

AOL for Mac OS X

Aphrodite *

Beonex Communicator *

Camino

CompuServe 7.0

DocZilla

Epiphany(2.28起改用WebKit)

Galeon

IBM Web Browser

K-Meleon

Kazehakase

Lunascape

ManyOne *

Maxthon

Minimo

Netscape 6.0和以上 *

Salamander

SeaMonkey *

Skipstone

Flock *(3.0起改用WebKit)

Sleipnir(需自行安装)

PS: *表示使用Gecko来渲染基于XUL的用户界面。可以说是 Netscape (网景)的继承人,它们的目标是:“木有蛀牙” – -,开玩笑,FF(Mozilla)开发团队的目标是构建于标准100%兼容的浏览器,是小熊最喜欢的浏览器。

GG/SF——Webkit核心:

排版引擎:

(早期SF)KHTML引擎

(也不知啥时候至今,SF/GG均采用)WebCore引擎,由KHTML引擎衍生成WEBKIT自己构建的排版 引擎

JS引擎:

(早期SF)KJS引擎

(过后一段时间,SF采用)JavaScriptCore引擎

(4.0至今,SF)Nitro引擎(原名:SquirrelFish)

(GG)V8引擎:小熊认为V8是个好引擎,在JS执行效率上确实很强大。

使用该核心的浏览器们:

Google Chrome

Safari

搜狗高速浏览器*

傲游3*

QQ浏览器6*

枫树浏览器*

PS:*指(webkit/trident双引擎),Webkit本身早期代言是SF,不过GG的市场看上去比SF大, WEBKIT高呼:开源就是好,漏洞修复快。

OPera——Presto核心:

排版引擎:

(早期4~6)Elektra引擎 , 再早点的资料(例如3.5)小熊没找到

(7+)Presto引擎:由Opera Software开发的浏览器排版引擎

JS引擎:

(4.0~6.1)Linear A引擎

(7.0~9.2)Linear B引擎

(9.5~10.2)Futhark引擎

(10.5+)Carakan引擎

使用该引擎的浏览器们:

Opera 7与之后版本

Opera Mobile

Opera Mini

Nintendo DS Browser

Nintendo DSi浏览器

Nokia 770浏览器

Sony Mylo COM-1’s浏览器

Wii Internet Channel浏览器

PS:大老牌了 – -,一直存在,不过国人很少会用,偶经常在翻国外一些老插件(兼容IE5.5的 那些时间儿),能看到Cross Browser IE5.5 FF1.0 Opera7的时代 – -,历史相当悠久,另 外,DW MX至CS3版本的核心也是Presto,CS4之后改为使用Webkit核心。

排版引擎注意点

排版引擎不是直接就是css引擎了,里面包含了dtd模式规则和css引擎等,一个相当经典的问题,在html4的时候a标记内不应该包含块级元素,所以排版引擎还要根据自己的嵌套规则(跟dtd相关)来进行排版,对于支持html5的浏览器而言,对结构的探讨有了重大变化,例如a标记可以嵌套块级元素等,这里放一个有点历史但还挺标准的结构嵌套规则图(至少 cross 现在的所有浏览器):

大部分壳浏览器(偶也学耗子这么说了)根据吾国天朝人的操作习惯及网银问题,基本都使用Trident核心,而过后推出的双核浏览器并不存在啥优势,只是简单的将开源的Webkit核心与Trident核心融入到一个浏览器上(据一个开发浏览器的朋友说,一个壳浏览器装两个核心基本不存在太大难度,要将上面所述的4个核心都融入在一个浏览器下,切换起来几乎是不可能的),相信有的人已经受不了偶的唐僧了,为看到这里的亲们娱乐一下,剩下放出一些内涵图片,哈,差不多就讲到这里。

原文地址:http://jser.in/%e6%b1%87%e6%80%bb%e5%90%84%e6%b5%8f%e8%a7%88%e5%99%a8%e6%a0%b8%e5%bf%83js%e5%bc%95%e6%93%8e%e5%8f%8a%e6%8e%92%e7%89%88%e5%bc%95%e6%93%8e%e6%b7%b1%e7%a9%b6-295.shtml

[转载]汇总各浏览器核心(js引擎及排版引擎)深究相关推荐

  1. 汇总各浏览器核心(js引擎及排版引擎)深究

    前言 写本篇文章的初衷是追寻各浏览器对css.js实现性能而码,再说了,个人认为要做个负责前端应该要对其底层有所了解,这样在有的时候对bug能迅捷的对症下药. 小熊花了近6个小时搜索相关资料加上本身开 ...

  2. IE浏览器版本判断之 Trident (排版引擎)

    最近因为项目需要,发现IE 8及其以下版本对下拉框的兼容性不是很好,有时会因为下拉框文字太多而显示不全,但是IE9.10却没有以上问题.又由于IE浏览器自己的"浏览器模式"和&qu ...

  3. 浏览器内核、排版引擎、js引擎

    [定义] 浏览器最重要或者说核心的部分是"Rendering Engine",可大概译为"渲染引擎",不过我们一般习惯将之称为"浏览器内核" ...

  4. [转载/翻译]优化浏览器渲染

    Posts Tagged: 翻译 未分类 - 23 Comments 20 一 10 [转载/翻译]优化浏览器渲染ISD Webteam的大布同学(twitter:@tc_bryanzhang)牺牲了 ...

  5. Jade —— 源于 Node.js 的 HTML 模板引擎

    2013-12-11 发布 Jade -- 源于 Node.js 的 HTML 模板引擎 开源项目介绍 web 模板引擎 node.js jade 207.8k 次阅读  ·  读完需要 69 分钟 ...

  6. Rendering Engine 主流的浏览器内核(排版引擎、渲染引擎、解释引擎)有哪几种,分别的特点...

    一.A web browser engine A rendering engine is software that draws text and images on the screen. The ...

  7. javascript判断浏览器核心

    20 21 22 23 24 /** * 判断浏览器核心 * @return IE6.0/IE7.0/IE8.0/FireFox/Opera/other * @author ypz */ functi ...

  8. html浏览器pc端禁止缩放,阻止pc端浏览器缩放js代码

    阻止pc端浏览器缩放js代码 众所周知:移动端页面禁止用户缩放界面只需加上即可,但是pc端确实比较麻烦,用户可以通过如下几种方式来缩放: windows: ctrl + +/- ctrl + 滚轮 浏 ...

  9. 【教程转载】 火狐浏览器 实用插件一览(附插件下载地址)

    [教程转载] 火狐浏览器 实用插件一览(附插件下载地址)简单介绍一下: 火狐浏览器(firefox)最大的优点就是安全.快速.稳定. 有些人抱怨火狐的功能太少,有些网页不能正常浏览. 没关系,这些都不 ...

最新文章

  1. C++编程语言之Lambda 函数与表达式
  2. Devexpress之dxErrorProvider
  3. OpenCASCADE:Genproj tool构建OCCT
  4. Requests方法 -- Token获取操作
  5. leetcode 149. Max Points on a Line |149. 直线上最多的点数(Java)
  6. 从SAP社区上的一篇博客开始,聊聊SAP产品命名背后的那份情怀
  7. 反编译查看源码dex2jar
  8. 中国IT行业盛行,互联网行业早已饱和!程序员“过多”是主要原因?
  9. java中while循环练习,java练习 七、循环语句 do……while循环语句
  10. matlab虚拟现实之使用V-Realm Builder2建模
  11. 《Ray Tracing in One Weekend》——Chapter 10: Positionable camera
  12. 金税三期工程第二阶段数据级灾备项目需求
  13. 怎样让超星图书浏览器不会过期 (转)
  14. 用python做股票因子分析_因子分析(by+alphalens)
  15. ultravnc,4款不能错过的ultravnc汉化版
  16. iOS-QQ分享功能实现
  17. java画笑脸_canvas画笑脸
  18. 名字作诗,让你的名片更具有趣味性和个性化
  19. CF869A The Artful Expedient 结论题+数论
  20. html获取cookie数据,cookies数据是什么意思?

热门文章

  1. rmf文件 linux,实验一 linux环境与vi编辑器
  2. 201571030334 小学四则运算练习软件项目报告
  3. 证明 logX X 对所有 X 0 成立
  4. 智能健康监测床垫算法实现---基于EMD算法采集心跳和呼吸心率分离(附详细源代码)适用于PVDF传感器和其他压阻人体体征传感器
  5. 2021年特种作业证继电保护,2021电工作业考试题库
  6. 如何恢复Chrome浏览器自动翻译功能
  7. Analys 版本历史
  8. 影响力营销合作伙伴 Influential 与 The Sandbox 达成合作,为品牌在平台上创造体验
  9. 西门子PORTAL精简屏下载程序后很多参数无数据,显示####
  10. 按头安利 好看又实用的毕业季插画素材看这里