zoukankan      html  css  js  c++  java
  • HTML排版引擎的简单介绍

    由于项目的原由最近接触了很多优秀的项目,其中包括HTML排版引擎,以下对其做下简单的介绍和比较.

    现在浏览器的内核引擎,基本上是三分天下:

    • Trident: IE 以Trident 作为内核引擎。
    • Gecko: Firefox 是基于 Gecko 开发。
    • WebKit: Safari, Google Chrome 基于 Webkit 开发。
    1. Trident

      Trident (又称为MSHTML),是微软的窗口操作系统(Windows)搭载的网页浏览器—Internet Explorer的排版引擎的名称,它的第一个版本随着1997年10月Internet Explorer第四版释出,之后不断的加入新的技术并随着新版本的Internet Explorer释出。在未来最新的Internet Explorer第七版中,微软将对Trident排版引擎做了的重大的变动,除了加入新的技术之外,并增加对网页标准的支持。尽管这些变动已经在相当大的程度上落后了其它的排版引擎,如Gecko、WebCore、KHTML及Presto。

        Trident引擎被设计成一个软件组件(模块),使得其它软件开发人员很容易的将网页浏览的功能加到他们自行开发的应用程序里。微软提出了一个称为组件对象模型(COM)的软件接口架构。供其它支持的组件对象模型开发环境的应用程序(如:C++及.NET)存取及编辑网页。例如,由C++所撰写的程序可以加入浏览器控件里,并透过Trident引擎存取当前显示在浏览器上的网页内容及网页的各种元素的值,从浏览器控件触发的事件亦可被程序撷取并进行处理。Trident引擎所提供的所有函式库可以透过与 mshtml.dll这个档案的连结而达成撰写程序时所需要的功能。

        除此之外,微软还有另一个网页浏览器排版引擎,称为Tasman,它是使用在「Internet Explorer for Mac」的排版引擎。相较于Trident,Tasman引擎对网页标准有较佳的支持。与普遍的看法相反的是,微软已经停止了麦金塔计算机版本的 Internet Explorer的开发,但Tasman的开发仍旧持续, 新版本的Tasman引擎仍被应用在一些微软产品上,如:麦金塔计算机版本的Microsoft Office。
        使用Trident引擎的浏览器有很多,比如Maxthon,腾讯TT,MyIE等等,但Trident只能应用于Windows平台.

    2. Gecko
      Gecko是套开放源代码的、以C++编写的网页排版引擎。目前为Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用。这软件原本是由网景通讯公司开发的,现在则由Mozilla基金会维护。

      这套排版引擎提供了一个丰富的程序界面以供互联网相关的应用程式使用,例如网页浏览器、HTML编辑器、客户端/服务器等等。虽然最初的主要对象是Mozilla的衍生产品,如Netscape和Mozilla Firefox,现在已有很多其他软件现在利用这个排版引擎。Gecko是跨平台的,能在Microsoft Windows、Linux和Mac OS X等主要操作系统上运行。

      Gecko是最流行的排版引擎之一,其流行程度仅次于Trident.
      使用Gecko引擎的浏览器有Firefox, 网景(6至9), SeaMonkey, Camino, Mozilla, Flock, Galeon, K-Meleon, Minimo, Sleipnir, Songbird , XeroBank.

    3. WebKit
      WebKit是Mac OS X v10.3及以上版本所包含的软件框架(对v10.2.7及以上版本也可通过软件更新获取)。 同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,包含了来自KDE项目和苹果公司的一些组件。
      目前使用WebKit 引擎的浏览器主要有:Safari(apple出品),Midori,chrome(google出品)等。

      WebKit拥有清晰的源码结构、极快的渲染速度。

  • 相关阅读:
    P3396 哈希冲突 分块
    大数据之路week01--自学之面向对象java(static,this指针(初稿))
    大数据之路week01--自学之集合_2(列表迭代器 ListIterator)
    大数据之路week01--自学之集合_2(List)
    大数据之路week01--自学之集合_2(Iterator迭代器)
    大数据之路week01--自学之集合_1(Collection)
    大数据之路day05_1--初识类、对象
    大数据之路day04_2--经典bug(equals与==比较不同,break的跳出不同)
    大数据之路day04_1--数组 and for循环进阶
    eclipse断点的使用---for循环举例
  • 原文地址:https://www.cnblogs.com/flying_bat/p/1314525.html
Copyright © 2011-2022 走看看