【问题标题】:What is the best HTML Rendering Engine to embed in an application? [closed]嵌入到应用程序中的最佳 HTML 渲染引擎是什么? [关闭]
【发布时间】:2010-09-16 02:38:30
【问题描述】:

目前,我们的应用程序使用 Trident Win32 组件,但出于几个原因,我们希望摆脱它,其中最主要的原因是我们希望跨平台。

我们正在考虑WebKitGecko,但我希望在做出决定之前获得一些反馈。以下是一些最重要的要求:

  1. 它应该比较快,占用空间小。理想情况下,我们可以毫不费力地修剪掉不需要的任何东西。

  2. 体面的文档很重要。我预计不需要对它做任何不寻常的事情,但你永远不知道。

  3. 我们正在使用 C++,如果可能的话,我们希望使用设计良好的面向对象架构。

  4. 跨平台是必须的,从长远来看,良好的性能会有所帮助(我们最终可能会移植到移动平台)。

在做出决定之前我需要考虑哪些因素?以前有没有人使用过 WebKit 或 Gecko?如果是这样,是否有任何我觉得有用的文章或教程?

更新:

感谢大家的回复。我们最终选择了包含 WebKit 的 Qt 4.5。到目前为止,我们对它非常满意,事实上我认为 Qt 可能是我用过的最好的 UI 框架;使用本机 Win32 API 进行编码之间的差异是惊人的。它也很容易学习,我们唯一遇到的主要问题是习惯了信号/插槽范例。

【问题讨论】:

  • 你是(或者你可以是)开源的吗?如果不是,那可能会限制您可以使用的内容。 (我认为 WebKit 是 LGPL?如果你是封闭源代码,这些限制还不错)
  • 我们还远远没有做出这个决定,但这肯定是有可能的。
  • 这个问题应该与“C++项目的嵌入式浏览器是什么?”合并或链接。 (stackoverflow.com/questions/835201) 虽然这个问题是关于嵌入 Web 浏览器引擎并去除渲染。

标签: c++ qt webkit gecko rendering-engine


【解决方案1】:

了解一些历史可能有助于您做出决定。当 Apple 考虑在制作 Safari 时使用哪种引擎时,他们查看了 Gecko,但决定使用 KHTML,将其分叉并命名为 WebKit。他们这样做的原因是 Gecko 有大量遗留在 Netscape 的遗留问题,而且要复杂得多。

KHTML/WebKit 较新,因此遗留较少。它也更干净、更快捷、记录更完善。

Firefox 3 的目标之一是清理和简化代码库。据我所知,他们确实这样做了,但我不知道它与当前的 WebKit 迭代相比如何。 Google 在制造 Chrome 时显然还不够,而且他们在 Firefox 中占有重要地位。

更多详情请见here

【讨论】:

  • Firefox 3 于 2008 年 6 月 17 日发布,如果我没记错的话,到那时 Chrome 已经开发了 2 年。我认为可以肯定地说,Mozilla 为 Firefox 3 所做的重组与 Google 决定采用 Webkit 无关。
【解决方案2】:

我有偏见,但如果你不介意使用(LGPL-ed)Qt,那么使用QtWebKit 怎么样?它很容易嵌入,当然是跨平台的,有很好的网络浏览器演示,还有其他related examples

【讨论】:

  • 嗨,Ariya,我们最终选择了 Qt;你们正在做一些了不起的工作。请参阅上面的更新。
【解决方案3】:

这取决于您的需求。如果您只想显示普通的 HTML,即使是 Webkit 也可能是矫枉过正。在我的一些应用程序中,我改用 wxHTML。它是 wxWidgets 库中的一个组件(但不确定是否可以在没有 wx 的情况下使用它)。它是轻量级的,只支持基本的 HTML 内容(一些 CSS 支持可能会在下一个版本中提供),并且有一个非常好的 wxHtmlEasyPrinting 控件,它提供了很好的打印预览并且打印效果也很好。至于跨平台,wxWidgets 可以在 Windows、Linux、Mac 和其他一些系统上运行,所以一定能满足你的要求。

我不建议沿着 Gecko 路走。可以集成它,但它比 KHTML/Webkit 更难实现 - 仅仅是因为 Gecko 在构建时并未考虑嵌入。

【讨论】:

    【解决方案4】:

    我想我会推荐 Safari/Chrome 的 WebKit 引擎,它源自 KHTML,Konqueror 渲染引擎。

    【讨论】:

      【解决方案5】:

      尝试选择 Webkit,因为它被许多不同的浏览器(Konqueror、Safari 和 Google chrome)使用。这使得 Webkit 更通用,更能适应其他需求。

      Gecko 的开发与 Firefox 息息相关。对 Gecko 进行了很多修改,因为 Firefox 规定了它们。例如,Firefox 3 决定出于安全目的阻止所有自签名证书。该实现已在 Gecko 的引擎中完成,这意味着任何决定嵌入 Gecko 的应用程序都会添加此安全约束。

      如果您可以继续使用 Webkit,因为它主要是 HTML 页面的渲染引擎。这是为了在不同的网络浏览器中使用而开发的。而 Gecko 主要是单个浏览器的渲染引擎,它恰好提供了嵌入的 API。

      【讨论】:

      • 我还要赶紧补充一点,Adobe AIR 使用 WebKit。
      【解决方案6】:

      我的理解是 Webkit 比 Gecko 非常好而且更小。不过,Gecko 应该最近进行了改造,使其具有相当的可比性。

      【讨论】:

        猜你喜欢
        • 2010-10-20
        • 2010-09-13
        • 1970-01-01
        • 2010-09-13
        • 2015-08-07
        • 2011-05-16
        • 2023-03-03
        • 2016-01-13
        • 2013-06-08
        相关资源
        最近更新 更多