缓存

htmx 可以与标准 HTTP 缓存 机制配合使用。

如果你的服务器将 Last-Modified HTTP 响应标头添加到给定 URL 的响应中,则浏览器将自动将 If-Modified-Since 请求 HTTP 标头添加到对同一 URL 的下一个请求中。请注意,如果你的服务器可以根据其他标头为同一 URL 呈现不同的内容,则需要使用 Vary 响应 HTTP 标头。例如,如果你的服务器在 HX-Request 标头缺失或时呈现完整的 HTML false,而在时呈现该 HTML 的片段HX-Request: true,则需要添加 Vary: HX-Request。这会导致缓存基于响应 URL 和HX-Request请求标头的组合进行键入 — 而不是仅基于响应 URL。

如果你无法(或不愿意)使用Vary标头,也可以将配置参数设置 getCacheBusterParam 为 true 。如果设置了此配置变量,htmx 将在GET其发出的请求中包含一个缓存破坏参数,这将阻止浏览器在同一个缓存槽中缓存基于 htmx 和非基于 htmx 的响应。

htmx 也能按 ETag 预期工作。请注意,如果你的服务器可以为同一 URL 呈现不同的内容(例如,根据 HX-Request 标头的值),则服务器需要 ETag 为每个内容生成不同的内容。