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

news/2024/11/29 3:59:56/

一、A web browser engine

  1.      A rendering engine is software that draws text and images on the screen. The engine draws structured text from a document (often HTML), and formats it properly based on the given style declarations (often given in CSS). Examples of layout engines: Blink, Gecko, Edge, WebKit--from MDN           
  2. web browser engine (sometimes called layout engine or rendering engine) is a program that renders marked up content (such as HTML, XML, image files, etc.) and formatting information (such as CSS, XSL, etc.).     ---from wikipedia https://en.wikipedia.org/wiki/Web_browser_engine

 

    其实就是用来渲染网页内容的,将网页的内容和排版代码转换为可视的页面,如将HTML(5)、XML、CSS(3)、images、files等渲染到浏览器页面。

二、有哪些,分别有什么特点

1.Trident

  Trident(又称为MSHTMLIE内核)是微软的视窗操作系统(Windows)搭载的网页浏览器—Internet Explorer的排版引擎的名称,它的第一个版本随着1997年10月Internet Explorer第四版发布,之后不断的加入新的技术并随着新版本的Internet Explorer发布。在Internet Explorer第七版中,微软对Trident排版引擎做了的重大的变动,除了加入新的技术之外,并增加对网页标准的支持(为什么到第七版才做改革,原因你懂的)。尽管这些变动已经在相当大的程度上落后了其它的排版引擎。如Gecko、WebCore、KHTML、Webkit及Presto

使用Trident的浏览器

  • Avant Browser(前身为IeOpera)
  • Maxthon(前身为MyIE3.2、MyIE2)
  • GreenBrowser(前身亦为MyIE3.2)
  • TouchNet Browser
  • Netscape Browser(可选择Trident核心)
  • 腾讯TT
  • GOSURF
  • 世界之窗(TheWorld Browser)
  • MiniIE
  • Sleipnir
  • MyIE(新版4.x为GreenBrowser作者发布,3.2及之前版本为Maxthon、GreenBrowser、iTreeSurf等浏览器的前身)
  • iTreeSurf(LovelyTree,前身亦为MyIE3.2)

(注:中国大陆的大部分浏览器都使用Trident排版引擎)

      Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现(如 Maxthon、The World 、TT、GreenBrowser、AvantBrowser等)。此外,为了方便也有很多人直接简称其为IE内核.微软还有一个网页浏览器排版引擎,称为Tasman,它是使用在「Internet Explorer for Mac」的排版引擎。相较于Trident,Tasman引擎对网页标准有较佳的支持。与普遍的看法相反的是,微软已经停止了Mac计算机版本的 Internet Explorer的开发,但Tasman的开发仍旧持续, 新版本的Tasman引擎仍被应用在一些微软产品上,如:麦金塔计算机版本的Microsoft Office。

 由于IE本身的“垄断性”而使得Trident内核的长期一家独大,微软很长时间 都并没有更新Trident内核,这导致了两个后果——

  • 一是Trident内核曾经几乎与W3C标准脱节(2005年)
  • 二是Trident内核的大量 Bug等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其他浏览 器,FirefoxOpera就是这个时候兴起的。非Trident内核浏览器的市场占有率大幅提高也致使许多网页开发人员开始注意网页标准和非IE浏 览器的浏览效果问题。

2.Gecko

  Netscape6开始采用的内核,后来的Mozilla FireFox (火狐浏览器)也采用了该内核,Gecko的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到 许多人的青睐,Gecko内核的浏览器也很多,这也是Geckos内核虽然年轻但市场占有率能够迅速提高的重要原因。 Gecko也是一个跨平台内核,可以在Windows、 BSD、Linux和Mac OS X中使用。

Firefox浏览器最大的优势,全部源代码开放。在渲染方面的优势,由于Firefox使用了动态布局引擎,其显示网页内容的速度比IE 快的多,

详细了解请看http://www.966266.com/jishu/51.html    讲了Gecko的发展史,虽然是10年的文章但还是很有参考价值。

3.webkit

WebKit内核,苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软 件,在GPL条约下授权,同时支持BSD系统的开发。所以Webkit也是自由软件,同时开放源代码。 在安全方面不受IE、Firefox的制约,所以 Safari浏览器在国内还是很安全的。限于Mac OS X的使用不广泛和Safari浏览器曾经只是Mac OS X的专属浏览器,这个内核本身应该说市场范围并不大;但似乎根据最新的浏览器调查表明,该浏览器的市场甚至已经超过了Opera的Presto了——当然 这一方面得益于苹果转到x86架构之后的人气暴涨,另外也是因为Safari 3终于推出了Windows版的缘故吧。

详细了解请看http://www.966266.com/jishu/53.html

4.Presto

     该款引擎的特点就是渲染速度的优化达到了极致,也是目前公认网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。

实际上这是一个动态内核,与其它几个内核的最大的区别就在脚本处理上,Presto有着天生的 优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析.此外该内核在执行Javascrīpt的时候有着最快的速度,根据在同等条件下的测 试,Presto内核执行同等Javascrīpt所需的时间仅有TridentGecko内核的约1/3(Trident内核最慢,不过两者相差没有多大)。那次测试的时候因为Apple机的硬件条件和普通PC机不同所以没有测试WebCore内核。只可惜Presto是商业引擎,使用Presto的 除开Opera以外,只剩下NDSBrowser、Wii Internet Channle、Nokia 770网络浏览器等,这很大程度上限制了Presto的发展。

详情查看http://www.966266.com/jishu/52.html

 

 

 

 

      

 

转载于:https://www.cnblogs.com/AliceX-J/p/5285269.html


http://www.ppmy.cn/news/569986.html

相关文章

高层游戏引擎——基于OGRE所实现的高层游戏引擎框架

这是意念自己的毕业论文,在一个具体的实践之中,意念主要负责的是物件和GUI之外的其他游戏系统。意念才学疏陋,望众位前辈不吝赐教。由于代码质量不高、环境很难于配置、资源包过大等问题,意念暂先不提供代码和程序,未来…

著名游戏引擎及其开发游戏

著名游戏引擎及其开发游戏 Unreal 虚幻引擎(Unreal Engine)是一款由Epic Games开发的游戏引擎,多用于开发第一人称射击游戏,最新版本为虚幻引擎3。虚幻3引擎(Unreal Engine 3)又称虚幻引擎3,是…

虚幻引擎(1)-角色跳跃

文章目录 前言其他介绍下一篇笔记动态预览图蓝图预览 一、创建操作映射(绑定跳跃按键)[1]. 打开操作映射界面[2]. 添加操作映射 二、蓝图节点介绍[1]. 触发事件[2]. 跳跃[3]. 停止跳跃 三 、角色蓝图[1]. 创建角色蓝图类[2]. 角色蓝图类的编辑[3]. 添加组件[4]. 调整相机视角[5…

游戏引擎Flax Engine分析(八)渲染

2021SCSDUSC 一、简述 我们继续之前的博客分析2D渲染服务后续的内容。边学习边分析渲染流程。 二、分析 接下来一些服务主要提供对于变换矩阵、颜色等熟悉的操作,诸如入栈、弹出等,这里不再赘述。 我们先看一下在之前分析的结束渲染时进行的批处理元素的…

@Valid接口参数校验怎么做,详细教程

接口参数校验教程 一、在字段上可以使用这个注解来设置校验 Null:被注释的元素必须为null NotNull:被注释的元素不能为null AssertTrue:该字段只能为true AssertFalse:该字段的值只能为false Min("value","messa…

游戏引擎Flax Engine分析(六)渲染

2021SCSDUSC 一、简述 这篇博客继续上一篇未分析完的部分继续分析,分析2D渲染服务。 二、分析 我们先看一下我们曾在Render2D.h这个头文件中介绍过的开始渲染函数,其有多个重载: API_FUNCTION() static void Begin(GPUContext* context, GP…

游戏引擎概述-Part1

一、简述自己的学习心路历程 自从业UNITY以来已经有4个月多了,回想起来自己从工作以来就很少写博客了,也算督促一下自己,回想自己从最早的Unity开始,入手C#和编辑器、Unity开发界面,再到自己学一些Unity的小项目…

Hazel游戏引擎

Hazel游戏引擎 Cherno开源项目gitee版本github到gitee(码云) Cherno开源项目gitee版本 看了b站的游戏引擎开发教学,内附的项目地址是github的,国内访问实在不便,遇到了诸多问题:所以将他的项目从github迁移到了gitee上。2021/10/…