List icon 目录

缓存

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

Chromium 支持以下缓存类型:

  • HTTP 缓存
  • Blink 缓存
  • HTML5 AppCache

当从页面发出任何资源请求时,它首先要经过 Blink 加载器和 Blink 缓存。然后,可能会或可能不会从那里向 Browser 进程发出请求。当请求通过 Browser 的网络堆栈时,它会到达 HTTP(磁盘或内存)缓存。页面与缓存之间没有明确的通信。

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

HTTP 缓存

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

内存缓存将资源存储和加载到进程内存中——RAM。这是一种快速但非持久的方式。内容仅在您关闭 Browser 之前可用。

磁盘缓存是持久的。被缓存的资源会被存储到磁盘上,并在需要时从磁盘上加载回来。

在 Windows 上,磁盘缓存存储在用户数据目录下的 Cache 文件夹中,可能如下所示:

Users\<user_name>\AppData\Local\JxBrowser\browsercore-<version>\UserData\Cache\

在 macOS 和 Linux 上,磁盘缓存存储在用户的临时目录中。

在 macOS 上它可能看起来像这样:

/var/folders/jc/8cmxmwhn5w99b_2lhz78k46w0000gq/T/UserData/Cache/

在 Linux 上:

/tmp/UserData/Cache

隐身模式

隐身模式下,Chromium 仅将资源存储在内存中,不使用磁盘。缓存的资源仅在您删除 Profile 或关闭 Engine 之前可用。

HTTP 缓存大小

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

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

Engine engine = Engine.newInstance(EngineOptions.newBuilder(...)
        .diskCacheSize(33554432)
        .build());
val engine = Engine.newInstance(EngineOptions.newBuilder(...)
        .diskCacheSize(33554432)
        .build())

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

清除 HTTP 缓存

要清除与特定 Profile 关联的 HTTP 缓存并等待所有缓存条目都标记为删除:

profile.httpCache().clear().join();
profile.httpCache().clear().join()

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

Go Top