缓存

本指南介绍了 Chromium 支持的缓存类型,并展示了如何使用它们。

Chromium 支持以下缓存类型:

  • HTTP cache
  • Blink cache
  • HTML5 AppCache

当从页面发出任何资源请求时,它首先通过 Blink 加载器和 Blink 缓存。 对浏览器进程的请求可能会也可能不会从这里发出。 当它通过浏览器的网络堆栈时,它会到达 HTTP,磁盘或内存缓存。 页面与缓存之间没有显式通信。

HTML5 AppCache 由网页明确使用。 它存储的数据独立于其他缓存。

HTTP cache

默认情况下,HTTP 缓存将从网络上获取的资源存储在磁盘或内存中。 Chromium 会自行决定如何缓存资源以获得最佳性能。

内存缓存将资源存储到进程内存(即 RAM)或从进程内存加载资源。 这是一种快速但不持久的方法。 内容仅在您处置 IBrowser 实例之前可用。

磁盘缓存是一种持久化方式,因为缓存的资源存储在磁盘中,也可以从磁盘加载。

在 Windows 系统中,磁盘缓存存储在 用户数据 目录下的 Cache 文件夹中,看起来像这样:

C:\Users\<username>\AppData\Local\Temp\dotnetbrowser-chromium\<version>\<arch>\data\Cache\

隐身模式

隐身模式下,Chromium 只将资源存储在内存中,不使用磁盘存储资源。 缓存的资源仅在您删除 Profile 或处置 IEngine 实例之前可用。

HTTP 缓存大小

默认缓存大小是在启动时计算的。 这取决于缓存所在的卷中的可用磁盘空间。

您可以在构造 IEngine 实例时使用适当的选项配置 HTTP 缓存大小。 例如,要设置 32MB 限制,请使用以下代码示例:

engine = EngineFactory.Create(new EngineOptions.Builder
{
    DiskCacheSize = 33554432
}
.Build());
engine = EngineFactory.Create(New EngineOptions.Builder With 
{
    .DiskCacheSize = 33554432
}.Build())

如果磁盘缓存大小设置为零,则会自动计算并使用默认值。

清除 HTTP 缓存

要清除与特定 Profile 关联的 HTTP 缓存并在完成后执行操作,请使用以下代码示例:

profile.HttpCache.Clear().ContinueWith(t => 
{
    // 缓存已被清除。
});
profile.HttpCache.Clear().ContinueWith(Sub(t)
    ' 缓存已被清除。
End Sub)

使用 IEngine.HttpCache() 方法,您将获得默认配置文件的 HttpCache 服务。

在调用 profile.HttpCache.Clear() 方法之前,建议至少运行一个 IBrowser 实例。 否则,可能会导致通话挂起。

清除 HTTP 身份验证缓存

要清除与特定配置文件关联的 HTTP 身份验证缓存,请使用以下代码:

profile.HttpAuthCache.Clear();
profile.HttpAuthCache.Clear()
Go Top