缓存

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

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

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

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