Mise en Cache
htmx fonctionne avec les mécanismes de mise en cache HTTP standard dès la sortie de la boîte.
Si votre serveur ajoute l’en-tête de réponse HTTP Last-Modified
à la réponse pour une URL donnée, le navigateur ajoutera automatiquement l’en-tête de requête HTTP If-Modified-Since
aux requêtes suivantes vers la même URL. Soyez attentif au fait que si votre serveur peut rendre un contenu différent pour la même URL en fonction d’autres en-têtes, vous devez utiliser l’en-tête de réponse HTTP Vary
. Par exemple, si votre serveur rend le HTML complet lorsque l’en-tête HX-Request
est manquant ou false
, et qu’il rend un fragment de ce HTML lorsque HX-Request: true
, vous devez ajouter Vary: HX-Request
. Cela amène le cache à être indexé sur un composite de l’URL de la réponse et de l’en-tête de requête HX-Request
— plutôt que d’être basé uniquement sur l’URL de la réponse.
Si vous ne pouvez pas (ou ne voulez pas) utiliser l’en-tête Vary
, vous pouvez également définir le paramètre de configuration getCacheBusterParam
sur true
. Si cette variable de configuration est définie, htmx inclura un paramètre anti-cache dans les requêtes GET
qu’il effectue, ce qui empêchera les navigateurs de mettre en cache les réponses basées sur htmx et non-htmx dans le même emplacement de cache.
htmx fonctionne également avec ETag
comme prévu. Soyez attentif au fait que si votre serveur peut rendre un contenu différent pour la même URL (par exemple, en fonction de la valeur de l’en-tête HX-Request
), le serveur doit générer un ETag
différent pour chaque contenu.