主流浏览器内核介绍_tz浏览内核-程序员宅基地

技术标签: 资料收集  

主流浏览器内核分类

 

  浏览器内核种类繁多,商用的加上非商业的免费内核,大约有10款以上甚至更多,不过通常比较常见的大约只有以下4种,下面就简单介绍一下。
 
  (1)Trident

  Trident(又称为MSHTML),是微软的Windows搭载的网页浏览器——Internet Explorer浏览器使用的内核(俗称IE内核),该内核程序在1997年的IE 4中首次被采用,之后不断地加入新的技术并随着新版本的IE发布。Trident实际上是一款开放的内核,Trident引擎被设计成一个软件组件(模块),使得其他软件开发人员很容易将网页浏览功能加到他们自行开发的应用程序里,其接口内核设计相当成熟,因此才涌现出许多采用IE内核而非IE的浏览器(如Maxthon、The World、腾讯的TT、GreenBrowser等),但是Trident只能用于Windwos平台。

  由于IE本身的“垄断性”而使得Trident内核在很长时间内都是一家独大,微软也在相当长一段时间内都没有更新Trident内核,这就导致了两个后果——一是Trident内核曾经几乎与W3C标准脱节;二是Trident内核的大量Bug等安全性问题没有得到及时解决。目前,微软对Trident排版引擎做了重大变动,除了加入新的技术之外,还增加了对网页标准的支持。尽管这些变动已经在相当大的程度上落后了其他的排版引擎,如Gecko、WebCore、KHTML及Presto。
 
  (2)Gecko

  Gecko是开放源代码、以C++编写的网页排版引擎,目前被Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用。这款软件原本是由网景通讯公司开发的,现在则由Mozilla基金会维护。由于Gecko的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到许多人的青睐,采用Gecko内核的浏览器也很多,这也是Gecko内核虽然年轻但市场占有率能够迅速提高的重要原因。

  Gecko排版引擎提供了一个丰富的程序界面以供与互联网相关的应用程序使用,例如网页浏览器、HTML编辑器、客户端/服务器等。虽然最初的主要对象是Mozilla的衍生产品,如Netscape和Mozilla Firefox,但是现在已有很多其他软件利用这个排版引擎。此外Gecko也是一个跨平台内核,可以在Windows、BSD、Linux和Mac OS X中使用。

  Gecko是最流行的排版引擎之一,其流行程度仅次于Trident。使用Gecko引擎的浏览器有Firefox、网景6~9、SeaMonkey、Camino、Mozilla、Flock、Galeon、K-Meleon、Minimo、Sleipni、Songbird、XeroBank。Google Gadget引擎采用的就是Gecko浏览器引擎。

  (3)Presto
 
  Presto是一个由Opera Software开发的浏览器排版引擎,目前Opera 7.0~10.00版本使用该款引擎。Presto的特点就是渲染速度的优化达到了极致,它是目前公认的网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。

 

  Presto实际上是一个动态内核,与Trident、Gecko等内核的最大区别就在于脚本处理上,Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行JavaScript时有着最快的速度,根据同等条件下的测试,Presto内核执行同等JavaScript所需的时间仅有Trident和Gecko内核的约1/3。不过,不足之处在于Presto是商业引擎,使用Presto的除了Opera以外,只剩下NDS Browser、Nokia 770网络浏览器等,这在很大程度上限制了Presto的发展。

  Opera Widget引擎采用的就是Presto引擎。
 
  (4)WebKit
 
  WebKit 是一个开放源代码的浏览器引擎(Web Browser Engine),WebKit最初的代码来自KDE的KHTML和KJS(它们均为开放源代码,都是自由软件,在GPL协议下授权)。所以WebKit也是自由软件,同时开放源代码。

  除了Safari浏览器,Mac下还有OmniWeb、Shiira等人气很高的浏览器。Google的chrome也使用WebKit作为内核。

  WebKit内核在手机上的应用也十分广泛,例如Google的Android平台浏览器、Apple的iPhone浏览器、Nokia S60浏览器等所使用的浏览器内核引擎,都是基于WebKit引擎的。

  WebKit内核也广泛应用于Widget引擎产品,包括中国移动的BAE、Apple的Dashboard以及Nokia WRT在内采用的均为WebKit引擎。 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhizaibide1987/article/details/10807263

智能推荐

基于vue、avue、element-ui的前端框架saber的顶部菜单栏配置_saber 新增菜单-程序员宅基地

文章浏览阅读4.5k次,点赞3次,收藏10次。步骤1:文件位置:Saber/src/mock/menu.js新增菜单模块:步骤2:绑定对应模块路由:(与步骤1中的模块菜单名称对应)在zh.js中添加新增菜单的名称:(与对应路由名称绑定)新建一个页面,路径与步骤1中页面路径对应 (Saber/src/views/util/test.vue),编写页面:完成效果图如下:附上test.vue的完整测试代码:<t..._saber 新增菜单

centos如何安装libssl-dev libsdl-dev libavcodec-dev libavutil-dev ffmpeg_yum install libssl-dev-程序员宅基地

文章浏览阅读3.3k次,点赞2次,收藏2次。安装完成后,这些包将会被安装在您的 CentOS 系统上。打开终端,使用 root 或具有管理员权限的用户登录。_yum install libssl-dev

Seaborn常见绘图总结_seaborn清晰度-程序员宅基地

文章浏览阅读747次。以前粗略的学习过Matplotlib绘图、Pandas绘图(这里是pandas的常见绘图总结),但是都未深入的去学习过,一遇到问题就翻..._seaborn清晰度

Win32:三菱FX3U/FX5U的32位和64位MX插件注意事项_mx component通讯fx3u 64位-程序员宅基地

文章浏览阅读1.1k次。FX5U FX3U MX 三菱 PLC _mx component通讯fx3u 64位

2013计算机二级考试c语言试题及答案第二套,2013全国计算机等级考试新大纲二级C语言题库及参考答案...-程序员宅基地

文章浏览阅读95次。2013年全国计算机等级考试,二级C语言,新大纲,无纸化考试,题库,真题,答案参考答案 第一套题二、程序填空题本题是根据给定的公式来计算函数的值。第一处:程序中使用双精度double类型进行计算,所以函数的返回值类型也为double,所 以应填:double。第二处:当i等于1时,则返回f1函数的值,所以应填:f1。 第三处:如果i不等于1,则返回f2函数的值,所以应填:f2。 三、程序修改题 ...

毕业设计c语言课程设计,大学毕业设计论文-—c语言课程设计.doc-程序员宅基地

文章浏览阅读210次。大学毕业设计论文-—c语言课程设计课 程 设 计 报 告课程名称 C语言程序设计课题名称 通讯录管理系统专 业 汽车服务班 级 0901班学 号 200902180114姓 名 伏铄臻指导教师 王宁 陈多2010年9月12日湖南工程学院课 程 设 计 任 务 书课程名称 ..._基于c语言的毕业设计

随便推点

c语言程序全民,全民学编程之HelloWorld.pdf-程序员宅基地

文章浏览阅读61次。问题的提出相传古时候有个退休的程序员, 在家闲来无事,决定修习书法之道。第一日, 备好笔墨纸砚,便挥毫写下一行大字: “Hello World ”。学过编程语言的人都笑了,在程序员心目中, hello world 是一切的开始,程序语言教科书的第一个演示程序、 ...

vue使用qrcode2生成二维码内容不变问题_vue-qr生成的二维码会变吗-程序员宅基地

文章浏览阅读1.5k次。今天学习使用vue前端生成二维码并保存功能;发现生成内容不变;最后发现text赋值出现问题;下面直接上代码。安装插件#二维码npm install qrcodejs2代码引用<template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="6..._vue-qr生成的二维码会变吗

取消jupyter notebook的密码_jupyter notebook怎么不设置密码-程序员宅基地

文章浏览阅读1.4w次,点赞9次,收藏11次。取消jupyter notebook的密码1。终端输入:jupyter notebook --generate-config 会生成一个配置文件,成功后会显示文件路径(/Users/kyousugi/.jupyter/jupyter_notebook_config.py) 2。打开路径下的jupyter_notebook_config.py配置文件,找到jupyter_notebook_c..._jupyter notebook怎么不设置密码

基于ZYNQ的开源CANopen协议栈CANFestival移植_canfestival driver api-程序员宅基地

文章浏览阅读1w次,点赞26次,收藏149次。1 概述 CanFestival是一个免费而且开源的CANopen协议栈,较为适合于对CANopen协议栈功能完备性和工作性能要求不高的应用场合。对于功能和性能要求较高的应用,也有很多第三方的商用CANopen协议栈可供购买使用。目前,CanFestival在嵌入式控制(PLC、单片机、ARM等)领域中使用较多。 本文讲解了CanFestival库的基本架构和原理,针对ZYNQ平台详细介绍了移植的原理和过程。最后通过测试实例,介绍了CanFestival中主要常用功能及相..._canfestival driver api

Android笔记之IPC机制(二)AIDL-程序员宅基地

文章浏览阅读51次。一、AIDL:Android Interface Definition Language,即Android接口定义语言。Android系统中的进程之间不能[共享内存]因此,需要提供一些机制在不同进程之间进行数据通信。二、AIDL的创建:1、服务端服务端首先要创建一个Service用来监听客户端的连接请求,然后创建一个AIDL文件,将暴露给客户端的接口在这个AIDL文件中声明,最后在Ser...

C#中对DatagridView的部分常用操作_"this.datagridview1.columns[\"宽\"].displayindex"-程序员宅基地

文章浏览阅读770次,点赞2次,收藏10次。  C#DataGridView中的常用技巧  只列出技巧部分,后面会有补充  (最基本的技巧). 获取某列中的某行(某单元格)中的内容 this.currentposition = this.dataGridView1.BindingContext [this.dataGridView1.DataSource, this.dataGridView1.Da_"this.datagridview1.columns[\"宽\"].displayindex"