Awesomium WebSessions共享磁盘缓存吗?

时间:2013-01-23 00:38:20

标签: c# winforms awesomium

使用Awesomium.NET 1.7 RC3,如果我在我的应用程序中创建WebSessionWebView,如下所示:

var webSession = 
    WebCore.CreateWebSession("C:\\AwCache", new WebPreferences{...});
var webView = 
    WebCore.CreateWebView(500, 500, webSession);

...然后退出应用,我的应用下次启动时,缓存的数据(图片,css等)是否可用,并使用相同的位置创建WebSession缓存?

1 个答案:

答案 0 :(得分:1)

我相信缓存仍然可用。虽然我在缓存方面的大部分经验都是在Awesomium 1.6.6中完成的,并且在调用WebCoreConfig.UserDataPath时通过设置WebCore.Initialize()属性来完成,但是一些测试暗示它仍然可用。

如果你看一下第一次运行你的代码并访问一个网页时创建的文件(我选择Flickr只是为了在页面上有合理数量的图像),你会看到你的AwCache文件夹里面,还有另一个名为'Cache'的文件夹。该文件夹包含4个'data_X'文件,一个索引文件和一些'f_XXXXXX'文件。值得注意的另一件事是在第一个应用程序运行时生成这些文件的速度有多快。当您重新运行应用程序时,只要您访问相同的URL,就不会创建新文件,但data_X文件,索引文件和可能的几个f_X文件的时间戳会更新,但许多f_X文件保持不变。文件更改也很快发生。

我相信f_X文件是来自网站的实际缓存项目,因为访问不同的网站会导致f_X文件数量增加,而重新访问同一网站则不会。

显然,这远不是事实上的答案,但基于这些观察,我认为显然缓存是保持的。最后一篇,如果你看看Awesomium 1.7 documentationCreateWebSession(WebPreferences)以粗体指定它是内存缓存,你调用的CreateWebSession(string, WebPreferences)方法不是。