Кэширование
htmx поддерживает стандартные механизмы HTTP-кэширования из коробки.
Если ваш сервер добавляет заголовок ответа Last-Modified в ответ для определённого URL, браузер автоматически добавит заголовок запроса If-Modified-Since при последующих запросах к тому же URL. Учтите: если ваш сервер может отдавать разный контент для одного URL в зависимости от других заголовков, вам необходимо использовать заголовок ответа Vary.
Например, если сервер отдаёт полную HTML-страницу при отсутствии заголовка HX-Request или при значении false, а возвращает только фрагмент HTML при HX-Request: true, вам нужно добавить Vary: HX-Request. Это обеспечит разделение кэша на основе комбинации URL ответа и заголовка запроса HX-Request, а не только на основе URL ответа.
Если вы не можете (или не хотите) использовать заголовок Vary, альтернативно можно установить параметр конфигурации getCacheBusterParam в значение true. При такой настройке htmx будет добавлять параметр предотвращения кэширования в GET-запросы, что исключит сохранение htmx-ответов и обычных ответов в одном слоте кэша.
htmx также корректно работает с ETag. Важно помнить: если сервер может отдавать разный контент для одного URL (например, в зависимости от значения заголовка HX-Request), сервер должен генерировать разные значения ETag для каждого варианта контента.