【发布时间】:2011-03-15 07:39:10
【问题描述】:
我目前使用 .NET 中的 IE ActiveX(网络浏览器)控件在我的应用程序中显示 HTML,但它非常慢(消耗大量虚拟内存),而且非常有限,我想用一个完全托管的 HTML 查看器。
这是对Is there any better web browser control in C# (.NET)? 的不同请求,因为它与其他嵌入式浏览器(Firefox/Gecko)有关。我不想嵌入浏览器,我想要一个管理得当的控件。
更新(2011 年 4 月 13 日):This post Jeff Atwood 解释了部分原因,因为那些不清楚为什么这很重要/需要的人。
【问题讨论】:
-
您正在寻找一个完全用托管代码编写的浏览器?我不知道一个。您可以做的最好的事情是为现有的 Web 浏览器提供一个 .NET 包装器。目前尚不清楚为什么这对您来说是不可接受的。
-
@Code Gray - 一个完全用托管代码编写的浏览器控件,是的。它是否需要像主流浏览器一样功能丰富,根本不需要。到目前为止,我对嵌入式浏览器的问题只是大小,最小的浏览器会使我当前的系统大小增加一倍,它们会增加大量开销(IE 虚拟内存使用量是我的应用程序其余部分的 4 倍),而且包装器很差,如果你想要认真对待它。
-
我并不是说这听起来很粗鲁,但这有点愚蠢。用完全托管代码编写的浏览器如果不是比用本机代码编写的浏览器更臃肿的话,那将是任何东西。使用托管控件肯定会有更多 开销。我的猜测是明显更多,但实际上没有见过,很难确定。我了解您不喜欢 IE;我也不。但是还有其他可用的好的包装器,您应该认真考虑。你不会找到用 .NET 编写的浏览器。
-
@Code Gray - 认为你没有抓住重点。第一个膨胀非常广泛,我对文件大小的膨胀感到满意,但我想避免像虚拟内存问题这样的事情,这在所有包装器中都是巨大的。其次,拥有一个托管代码浏览器(我们在这里也没有讨论完整的实现,只是一个 HTML 查看器/解析器)意味着可以轻松更改代码。例如,如果我想添加对 HTML11 的支持,那么我可以。考虑到这存在于 JAVA 和 Delphi 中,它表明需要并且可以完成 - 只是不确定是什么阻止了 .NET 人这样做。