缓存
本指南描述了 Chromium 支持的缓存类型,并展示了如何使用它们。
Chromium 支持以下缓存类型:
- HTTP 缓存
- Blink 缓存
- HTML5 应用程序缓存
当从页面发出任何资源请求时,它首先要经过 Blink 加载器和 Blink 缓存。 对浏览器进程的请求可能会也可能不会从那里发出。 当它通过浏览器的网络堆栈时,它会到达 HTTP(磁盘或内存)缓存。没有从页面到缓存的显式通信。
HTML5 应用程序缓存由网页显式使用。 它独立于其他缓存存储数据。
HTTP 缓存
默认情况下,HTTP 缓存将从网络上获取的资源存储在磁盘或内存中。 Chromium 本身决定如何缓存资源以获得最佳性能。
内存缓存将资源存储到进程内存(RAM)或从进程内存加载资源。 这是一种快速但非持久性的方式。 内容仅在您关闭浏览器之前可用。
磁盘缓存是持久的。 缓存的资源被存储到磁中,或从磁盘加载。
在 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
服务。