什么是嵌入应用程序中的最佳HTML呈现引擎

What is the best HTML Rendering Engine to embed in an application?

本文关键字:HTML 最佳 引擎 应用程序 什么      更新时间:2023-10-16

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

我们正在研究WebKit和Gecko,但我很想在做出决定之前得到一些反馈。以下是一些最重要的要求:

  1. 它应该相对较快,占地面积较小。理想情况下,我们可以在不付出太多努力的情况下修剪掉任何我们不需要的东西。

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

  3. 我们使用的是C++,如果可能的话,我们希望使用设计良好的面向对象体系结构。

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

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

更新:

谢谢你们的回复。我们最终选择了Qt4.5,其中包括WebKit。到目前为止,我们真的很满意,事实上,我认为Qt可能是我用过的最好的UI框架;使用本机Win32 API进行编码与此之间的差异是惊人的。它也很容易学习,我们唯一的主要问题是习惯信号/插槽模式。

一点历史可能会帮助您做出决定。当苹果考虑在制作Safari时使用哪种引擎时,他们考虑了Gecko,但决定使用KHTML,并将其命名为WebKit。他们这样做的原因是,Gecko有大量遗留下来的Netscape漏洞,而且要复杂得多。

KHTML/WebKit是较新的,因此遗产较少。它也更干净、更快、记录更好。

Firefox 3的目标之一是清理代码库并简化它。据我所知,他们确实做到了这一点,但我不知道它与当前的WebKit迭代相比如何。对于谷歌来说,这显然还不够,因为他们在Firefox中拥有大量股份。

请参阅此处了解更多详细信息。

我有偏见,但如果你不介意使用(LGPL ed)Qt,那么使用QtWebKit呢?它很容易嵌入,当然是跨平台的,有一个很好的web浏览器演示,还有其他相关的例子。

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

我不建议走壁虎路。集成它是可能的,但这比KHTML/Webkit要困难得多——这只是因为Gecko的构建没有考虑到嵌入。

我建议使用Safari/Chrome的WebKit引擎,该引擎源自Konqueror渲染引擎KHTML。

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

Gecko的开发与Firefox密切相关。对Gecko所做的许多修改都是因为Firefox规定了它们。例如,Firefox3决定为了安全起见,将阻止所有自签名证书。实现已经在Gecko的引擎中完成,这意味着任何决定嵌入Gecko应用程序都会添加此安全约束。

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

我的理解是Webkit非常好&比壁虎还小。Gecko最近应该进行了改造,这使其具有相当的可比性。