应用程序重启后如何强制缓存重用 - GeckoFX / xulRunner

时间:2015-05-01 05:20:28

标签: caching xulrunner http-caching geckofx embedded-browser

我承认,我是嵌入式浏览器的新手,但我已经在WPF应用程序中运行并托管了GeckoFX v33控件。在浏览会话期间,浏览和缓存正在运行。但是,在应用程序重新启动时,缓存将丢失(或被忽略),并且所有Web资产都会重新下载!

我很傻眼为什么默认情况下没有启用它,因为它毕竟是一个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);

但是,它总是在应用程序重启时再次加载Web资产!

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

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

降级为 geckofx-31.0-01或更低版本解决了我的问题,缓存仍然存在(在 / cache2 文件夹中,自动创建)。

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

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

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

  •   
  • GeckoFx 33.0-02.zip with xulRunner 33.0.2.en-US.win32.zip:磁盘缓存 FAILS
  •   

我使用的是上面的33版本(因为它是最新版本!),因此无法使磁盘缓存工作。我绝对认为这是一个错误,因为它每次都可以重现。我不知道这个错误是在geckoFx还是xulRunner运行时,但我会把它留给开发人员的大脑 - 信任来修复。我相信缓存API在v33中已更改。

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