各大浏览器内核介绍(Rendering Engine)
在介绍各大浏览器的内核之前,我们先来了解一下什么是浏览器内核。
所谓浏览器内核就是指浏览器最重要或者说核心的部分"Rendering Engine",译为"渲染引擎"。负责对网页语法的解析,比如HTML、JavaScript,并渲染到网页上。所以浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定这浏览器如何显示页面的内容和页面的格式信息。不同的浏览器内核对语法的解释也不相同,因此同一的网页在不同内核的浏览器显示的效果也会有差异。这也就是网页编写者在不同内核的浏览器中测试网页显示效果的原因。
内核分类:
Trident 英 [ˈtraɪdnt] 美 [ˈtraɪdn:t]
Trident内核(代表:Internet Explorer):该内核是微软在Mosaic代码的基础之上修改而来的,也被成为IE内核。(在Windows 95年代一直到xp初期,IE借助着Windows一直处于"龙头"的地位)这使得Trident内核长期处于一家独大的状况。微软长期没有更新Trident内核,导致了Trident内核几乎与W3C标准脱节(2005年)、大量的bug和安全性问题没有及时解决,逐渐开发者和一些学者认为IE不安全,开始转向其他的浏览器,Firefox和Opera就是这个时候兴起的。
Trident内核常见的浏览器有:IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0),遨游浏览器、世界之窗浏览器、Avant、腾讯TT等。
现在部分浏览器的新版本是"双核"甚至是"多核",其中一个内核是Trident,然后再增加一个其他内核。国内的厂商一般把其他内核叫做"高速浏览模式",而Trident则是"兼容浏览模式",用户可以来回切换。
Gecko 英 [ˈgekəʊ] 美 [ˈgekoʊ]
Gecko内核(代表:Mozilla Firefox):这是一个开源式的内核,代码完全公开,因此其可开发程度很高。以C++编写的网页排版引擎。Gecko是最流行的排版引擎之一。
Gecko内核常见的浏览器有:Mozilla Firefox、Mozilla SeaMonkey、Flock(早期版本)、K-Meleon等。
Webkit 英: WebKit
Webkit内核(代表:Safari、Chrome):它是苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。WebKit最初的代码来自KDE的KHTML和KJS(它们均为开放源代码,都是自由软件,在GPL协议下授权)。因此Webkit也是开源式内核,开发源代码。在安全方面不受IE、Firefox的制约,所以Safari浏览器在国内还是很安全的。
Webkit内核常见的浏览器有:傲游浏览器3、Apple Safari(Win/Mac/iPhone/iPad)、Symbian手机浏览器、Android 默认浏览器。
Presto 英 [ˈprestəʊ] 美 [ˈprestoʊ]
Presto内核(代表:OperaPresto):Presto是由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。它取代了旧版Opera 4至6版本使用的Elektra排版引擎,包括加入动态功能,例如网页或其部分可随着DOM及Script语法的事件而重新排版。该款引擎的特点就是渲染速度的优化达到了极致,然而代价是牺牲了网页的兼容性。
Opera现已改用Google Chrome的Blink内核。
Blink 英 [blɪŋk] 美 [blɪŋk]
Blink内核:该内核是一个由Google和Opera Software开发的浏览器排版引擎,实际上也是由webkit衍生而来。Google计划将这个渲染引擎作为Chromium计划的一部分,并且在2013年4月的时候公布了这一消息,将与苹果的开源浏览器核心Webkit分道扬镳,在Chromium项目中研发Blink渲染引擎(即浏览器核心)。
各大浏览器内核介绍(Rendering Engine)的更多相关文章
- 各大浏览器内核(Rendering Engine)
记得刚开始写网页的时候,听童鞋们说各大浏览器的内核,也是懵懵懂懂的,知一不知其二,今天特地查一下: 内核只是一个通俗的说法,其英文名称为“Layout engine”,翻译过来就是“排版引擎”,也被称 ...
- 几大主流浏览器内核(Rendering Engine)
"浏览器内核",英文为"Rendering Engine",也叫"渲染引擎",作用是帮助浏览器来渲染网页的内容,将页面内容和排版代码转换为用 ...
- 各大浏览器内核特性及对应的Browserhacks举例
1.浏览器内核指的是什么? 简化的浏览器=用户界面+渲染引擎+js解析引擎+数据存储+网络部件 而通常所说的浏览器内核指的是页面渲染引擎(rendering engine). 2.渲染引擎 The r ...
- Rendering Engine 主流的浏览器内核(排版引擎、渲染引擎、解释引擎)有哪几种,分别的特点
一.A web browser engine A rendering engine is software that draws text and images on the screen. The ...
- 浏览器内核与BOM对象介绍
BOM(Browser Object Model)对象介绍 我们都知道js有三部分组成,ECMAScript.DOM和BOM,根据宿主(浏览器)的不同,具体的表现形式也不尽相同,ie和其它浏览器也是风 ...
- 浏览器内核与js引擎
摘要: 面试一个大公司的时候问到了一个问题,让我谈谈主要的浏览器内核以及他们的特点,当时并没有详细的回答,回来之后自己在网上找了找资料,总结了下分享给大家. 简介: 在维基百科上是这样介绍浏览器内核的 ...
- 关于浏览器内核与javascript引擎的一些小知识
浏览器是我们每天几乎都必须使用的软件产品,可是对于自己每天都接触的浏览器,很多同学其实对其一无所知.今天异次元就跟大家说说关于浏览器内核的一些事儿吧,好让你了解多一点稍微内在的东西. 在下面的文章中主 ...
- 浏览器内核-Webkit
关键字:浏览器内核,浏览器引擎,Browser,Webkit,Blink,Chromium. 本文简单介绍一下各种浏览器内核.着种介绍一下Webkit.顾名思义,浏览器内核就是浏览器的核心部分,也可以 ...
- 浏览器内核Trident/Gecko/WebKit/Presto
“浏览器内核”主要指渲染引擎(Rendering Engine),负责解析网页语法(如HTML.JavaScript)并渲染.展示网页.因此,所谓的浏览器内核通常也就是指浏览器所采用的渲染引擎, 渲染 ...
随机推荐
- SQL操作符
Oracle中的操作符算术操作符:无论是在sqlserver,或者是java中,每种语言它都有算术操作符,大同小异. Oracle中算术操作符(+)(-)(*)(/) 值得注意的是:/ 在oracle ...
- mac机上搭建php56/nginx 1.8.x/thinkphp 3.2.x/gearman扩展/seaslog扩展/redis扩展环境
php的各种扩展配置起来实在不容易,记录一下备忘: 一.php56 安装 虽然php7出来了,但是没用过,不知道有没有坑,这里仍然使用php5.6版本 1.1 安装php/php-pfm brew u ...
- [LeetCode] Number of Digit One 数字1的个数
Given an integer n, count the total number of digit 1 appearing in all non-negative integers less th ...
- [LeetCode] Maximal Rectangle 最大矩形
Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and ...
- 在.NET中把项目从类库转为Web应用程序
我们知道,在.NET中所有的项目文件以.csproj为扩展名.内容是xml格式. 类库项目文件.csproj: <Project DefaultTargets="Build" ...
- FtpUtil
/* * 文件名:FtpUtil.java * 版权:Copyright 2000-2007 Huawei Tech. Co. Ltd. All Rights Reserved. * 描述: TopE ...
- git详解
Git使用教程 source: http://www.cnblogs.com/tugenhua0707/p/4050072.html 一:Git是什么? Git是目前世界上最先进的分布式版本控制系 ...
- 【Quartz】配置最简单的集群
在许多情况,我们希望我们的定时任务是可靠的,不会因系统故障.机器宕机而导致某一笔定时任务不能按时运行.这种情况下,我们就需要为Quartz做个集群. 最简单的情况,有两台机器或两个应用,同时维护一批定 ...
- Android基础测试题(四)
看了前两道题大家有没有发现,测试题少了(一),大家猜猜测试题(一)是什么? Android基础测试题(四): 需求: 建一个方法,格式化输出2016-11-14 10:15:26格式的当前时间,然后截 ...
- AutoMapper简单用法
首先在NuGet添加AutoMapper /// <summary> /// AutoMapper帮助类 /// </summary> public static class ...