缓存
本指南描述了 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
服务。