2

我承认我是嵌入式浏览器的新手,但我有一个 GeckoFX v33 控件可以工作并托管在 WPF 应用程序中。浏览和缓存在浏览会话期间工作。但是,在应用程序重新启动时,缓存会丢失(或被忽略)并且所有 Web 资源都会重新下载!

我很惊讶为什么默认情况下没有启用它,因为它毕竟是一个网络浏览器控件。

我尝试将自定义配置文件路径设置为具有写访问权限的现有目录:

var path = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "xulrunner");
Gecko.Xpcom.ProfileDirectory = System.IO.Path.Combine( Directory.GetCurrentDirectory(), "webcache");
Gecko.Xpcom.Initialize(path);

我也尝试过设置各种偏好组合,即

Gecko.GeckoPreferences.User.SetBoolPref("browser.cache.disk.enable",true);                
Gecko.GeckoPreferences.User.SetIntPref("Browser.cache.disk.capacity", 50000);

但是,它总是在应用重新启动时再次加载网络资产!

有谁知道让 geckoFX 或 xulRunner 在启动时查看最后一个缓存的正确配置?

提前致谢!

4

1 回答 1

0

好的,所以我已将此错误范围缩小到geckofx-33.0 版本

降级到geckofx-31.0-01 或更低版本解决了我的问题并且缓存被持久化(在/cache2文件夹中,自动创建)。

我测试了以下组合(操作系统:Windows):

  • GeckoFx 29.0-015.zip 和 xulRunner 29.0.1.en-US.win32.zip:磁盘缓存工作!

  • GeckoFx 31.0-01.zip 和 xulRunner 31.0.en-US.win32.zip:磁盘缓存工作!

  • GeckoFx 33.0-02.zip 和 xulRunner 33.0.2.en-US.win32.zip:磁盘缓存失败

我使用的是上面的 33 版本(因为它是最新版本!),因此无法让磁盘缓存工作。我绝对认为这是一个错误,因为它每次都可以重现。我不知道这个错误是存在于 geckoFx 还是 xulRunner 运行时,但我将把它留给开发人员的智囊团来修复。我相信缓存 API 在 v33 中发生了变化。

所以,现在我想我会回退到版本 31 并等待修复。

于 2015-05-12T00:52:01.687 回答