简介浏览器内核与JavaScript引擎
本文介绍了常用浏览器内核与JavaScript引擎
一、浏览器内核
Rending Engine, 顾名思义,称之为渲染网页内容的,将网页的代码转换为你看得见的页面,因为是排版,所以排版,所以肯定会有排版错误等问题。为什么会有排版错误呢,一部分是由于网站本身编写不规范,另一方面是浏览器本身的不规范,现在有一些主流的排版引擎,因为这些排版引擎都有其代表的浏览器,所以常常会把排版引擎的名称和浏览器的名称混用,其实这样是不合理的,因为一个完整的浏览器不会只有唯一的排版引擎,还有自己的界面框架和其他的功能支撑,而排版引擎本身也不可能实现浏览器的所有功能,下面罗列出几款主流的的排版引擎和浏览器
1、Trident内核(window)
Trident就是大名鼎鼎的IE浏览器所使用的内核,也是很多浏览器所使用的内核,MS现在采用的越来越少,反之使用webkit的越来越多,老的trident内核(比如IE6)当年占得市场份额很大,后果就是大量的网页是专门为IE6等老trident内核编写,但这些网页的代码并不符合w3c标准,于是完全符合w3c标准的网页在老trident内核下出现了偏差,这就是为什么后来很多人觉得后来的IE9网页排版有点混乱,而IE6正常,其实不是浏览器的兼容性差了,而是你访问的的网页不符合新的标准,目前可供调用的最新版的Trident内核是IE9使用的内核,较之前的版本对w3c的标准支持增了很多
基于Trident内核的浏览器有:
ie6,ie7,ie8(Trident 4.0) , ie9(trident 5.0) , ie10(trident6.0);
世界之窗,360安全浏览器, 遨游2.0(3.0以上版本开始采用webkit内核),搜狗浏览器,腾讯TT;其中部分版本的浏览器是双核浏览器,甚至是多核,
2、Gecko(跨平台)
Natescape6启用的内核,现在又mozilla基金会进行维护,是开源的浏览器内核,目前主流的Gecko内核是mozilla firefox, 由于firefox的出现,IE的霸主地位逐渐被削弱,chrome的出现加速了这个进程,非trident内核的兴起逐渐改变了整个互联网的格局,最直接的推动是编码的标准化,也使MS在竞争的压力下不得不改进IE,不过可惜的是,虽然是开源的,也开发了这么多年,基于Gecko的浏览器并不多见,除了一些简单的改动或者重新编译,深度定制或者增了强外壳的还是比较少见。另外就是一些软件借用了Gecko,比如音乐管理软件songbird
3、khtml(Linux)
KDE开发的内核,速度快捷,容错率低,这种内核不见得有很多人知道,但后面看下去你就会明白,常见的khtml内核的浏览器有:konqueror
4、webkit(跨平台)
由khtml发展而来,也是apple给开源世界的一大贡献,是目前最火热的浏览器内核,火热的不是说它的市场份额,而是应用的面积和势头,因为脱胎于khtml,所以具有高速的特点,同样遵守w3c标准,从目前来看,webkit内核是最具有潜力而且是已经有相当成绩的新型内核,性能非常好,对w3c标准的支持也非常完善,本人十分看好他、
常见的基于webkit内核的浏览器主要有:
apple 的safari(win/mac/iphone/ipad) 、google的chrome、塞班手机浏览器、Android手机默认的浏览器
5、Presto(跨平台)
opera所 采用的内核,准确的说是opera7.0及以后的版本采用的内核,之前的版本采用的内核是elektra, 无容置疑,Presto内核对w3c的支持也很良好,presto对页面文字的解析方面的性能比webkit还要高,对页面有较高的阅读性。
然而为了减少研发成本,Opera在2013年2月宣布放弃Presto,转而跟随Chrome使用WebKit分支的Chromium引擎作为自家浏览器核心引擎。
在Chrome与2013年推出Blink引擎(也是基于WebKit的分支)之后,Opera也紧跟其脚步表示将转而使用Blink作为浏览器核心引擎。
基于presto的内核的浏览器有:opera
二、JavaScript引擎
说完了排版引擎,下面来说说JavaScript引擎,顾名思义,js引擎就是用来执行javascript代码的, 简单的举个例子,一个计算圆周率的网页,排版引擎把页面的框架显示出来,最终的结果要用javascript来计算,所以javascript引擎的快慢也是对整个网页的速度有很大的影响,特别是最近 目前越来越多的类似webQQ、Gmail等大量复杂的基于javascript运算的网站,不同的执行引擎的速度的差别很显然易见。为甚么要单独拿出来说,因为还涉及到跑分,现在通俗的说那个浏览器更快,实际上是指执行javascript脚本的速度也就是javascript的渲染速度,而不是页面的载入速度,在网速允许的情况下,其实各浏览器的网页载入的速度差别不是很大,由于现在javascript在页面中的比重越来越大,越来越多的动态画面开始大量借助于javascript,比如现在主流的SNS、邮箱、网页游戏,所以javascript的渲染速度也是一个很重要的指标,javascript的渲染速度越快,动态页面的显示也就是越快,opera在javascript引擎的跑分上一直是遥遥领先的,一般来说在最新版本之间PK,opera基本上都会夺冠。
1、IE
chakra:查克拉,IE9启用的新的javascript引擎
2、Chrome
V8:开源,由Google丹麦开发,是Google Chrome的一部分。
注:我们上面提到Chrome是基于WebKit的分支,而WebKit又由渲染引擎“WebCore”和JS解释引擎“JSCore”组成,可能会让你搞不清V8和JSCore的关系。你可以这样理解——WebKit是一块主板,JSCore是一块可拆卸的内存条,谷歌实际上认为Webkit中的JSCore不够好,才自己搞了一个V8 JS引擎,这就是Chrome比Safari在某些JS测试中效率更高的原因。
3、Opera
Linear A:用于Opera 4.0~6.1版本。
Linear B:用于Opera 7.0~9.2版本。
Futhark:用于Opera 9.5~10.2版本。
Carakan:由Opera软件公司编写,自Opera10.50版本开始使用。
4、Firefox
SpiderMonkey:第一款JavaScript引擎,由Brendan Eich在Netscape Communications时编写,用于Mozilla Firefox 1.0~3.0版本。
Rhino:由Mozilla基金会管理,开放源代码,完全以Java编写。
TraceMonkey:基于实时编译的引擎,其中部份代码取自Tamarin引擎,用于Mozilla Firefox 3.5~3.6版本。
JaegerMonkey:德文Jäger原意为猎人,结合追踪和组合码技术大幅提高性能,部分技术借凿了V8、JavaScriptCore、WebKit:用于Mozilla Firefox 4.0以上版本。
IonMonkey:可以对JavaScript编译后的结果进行优化,用于Mozilla Firefox 18.0以上版本。
OdinMonkey:可以对asm.js进行优化,用于Mozilla Firefox 22.0以上版本。
5、其它
KJS:KDE的ECMAScript/JavaScript引擎,最初由Harri Porten开发,用于KDE项目的Konqueror网页浏览器中。
Narcissus:开放源代码,由Brendan Eich编写(他也参与编写了第一个SpiderMonkey)。
Tamarin:由Adobe Labs编写,Flash Player 9所使用的引擎。
Nitro(原名SquirrelFish):为Safari 4编写。
简介浏览器内核与JavaScript引擎的更多相关文章
- 关于浏览器内核与javascript引擎的一些小知识
浏览器是我们每天几乎都必须使用的软件产品,可是对于自己每天都接触的浏览器,很多同学其实对其一无所知.今天异次元就跟大家说说关于浏览器内核的一些事儿吧,好让你了解多一点稍微内在的东西. 在下面的文章中主 ...
- 浏览器内核、渲染引擎、JS引擎简介
一.定义 浏览器内核分成两部分:渲染引擎和JS引擎. 由于JS引擎越来越独立,浏览器内核 就倾向于 单指 渲染引擎. 渲染引擎是一种对HTML文档进行解析并将其显示在页面上的工具.(说白了,就是按照 ...
- 浏览器内核与js引擎
摘要: 面试一个大公司的时候问到了一个问题,让我谈谈主要的浏览器内核以及他们的特点,当时并没有详细的回答,回来之后自己在网上找了找资料,总结了下分享给大家. 简介: 在维基百科上是这样介绍浏览器内核的 ...
- 浏览器内核、排版引擎、js引擎
[定义] 浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“渲染引擎”,不过我们一般习惯将之称为“浏览器内核”.负责对网页语法的解释(如标准通用标记语 言下的一个应用HT ...
- 【repost】浏览器内核、渲染引擎、js引擎
[1]定义 浏览器内核分成两部分渲染引擎和js引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎 渲染引擎是一种对HTML文档进行解析并将其显示在页面上的工具[2]常见引擎 渲染引擎: firef ...
- 浏览器内核、渲染引擎、js引擎
[1]定义 浏览器内核分成两部分渲染引擎和js引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎 渲染引擎是一种对HTML文档进行解析并将其显示在页面上的工具 [2]常见引擎 渲染引擎: fire ...
- 【转】浏览器内核、渲染引擎、js引擎
[1]定义 浏览器内核分成两部分渲染引擎和js引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎 渲染引擎是一种对HTML文档进行解析并将其显示在页面上的工具[2]常见引擎 渲染引擎: firef ...
- Rendering Engine 主流的浏览器内核(排版引擎、渲染引擎、解释引擎)有哪几种,分别的特点
一.A web browser engine A rendering engine is software that draws text and images on the screen. The ...
- ECMA262,JavaScript引擎,浏览器
相关阅读:https://www.cnblogs.com/970119449blog/p/8080133.html 相关阅读:https://www.jb51.net/article/75888.ht ...
随机推荐
- JAVA 第七周学习总结
20175308 2018-2019-2 <Java程序设计>第七周学习总结 教材学习内容总结 本周学习第八章:常用实用类 String类: String类位于java.lang包中,被定 ...
- 网络流量状态命令总结 (含notp安装)
1. sar -n DEV 1 2 sar命令包含在sysstat工具包中,提供系统的众多统计数据.其在不同的系统上命令有些差异,某些系统提供的sar支持基于网络接口的数据统计,也可以查看设备上每秒收 ...
- 运行Android Studio自带模拟器报:Guest isn't online after 7 second...
今天在运行Android Studio自带的手机模拟器时,出现如下异常情况 : 解决办法: 1.打开Android Virtue Device Manager,点击编辑选项 2.点击show Adva ...
- java算法----排序----(1)插入排序
package log; public class Test4 { /** * java算法---插入排序 * * @param args */ public static void main(Str ...
- python语言程序设计7
1, 特么的打个空格出现就出现个点是个怎么回事, 昨天虽然是我复制的代码,,但也是我一点一点写出来的啊.. 复制的时候缩进直接就没了.我去 但是我感觉它一开始给我讲的一些基础理论又有点忘了,我希望你能 ...
- 编写一个供浏览器端使用的NPM包
此文已由作者吴维伟授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在编写程序时,总会有一些代码是我们不愿意一遍又一遍重复地去写的,比如一些UI或交互相似组件,或是一些相似的流 ...
- Flutter - 退出App
Flutter退出App的方法一般有两种 ①SystemNavigator.pop 推荐 onTap: () async { await pop(); }, static Future<void ...
- js类型----你所不知道的JavaScript系列(5)
ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型.也有其他的叫法,比如原始类型和对象类型等. 1.内置类型 JavaScript 有七种内置类型: • 空值(null) • 未定义( ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第三节--abp分层体系,实体相关及ABP模块系统
返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 ABP模块系统 说了这么久,还没有详细说到abp框架,abp其实基于DDD(领域驱动设计)原则的细看分层如下: 再 ...
- Jmeter(三十一)_数据驱动,业务关联
这种数据驱动的本质是:将测试的case,参数,url,预期结果,存储于本地excel中.运行脚本时,从文件中获取预期结果,将实际结果与预期结果比较,将实际结果,比较结果,响应状态码回写excel. 一 ...