Passer au contenu

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.