La plupart des bonnes réponses sont déjà mentionnées dans ce sujet. Cependant, je souhaite ajouter un lien vers l'article qui est le meilleur que j'ai pu lire.
https://www.fastly.com/blog/clearing-cache-browser
D'après ce que je vois, la solution la plus appropriée est la suivante :
POST dans une iframe. La suite est une petite soustraction du post suggéré :
\=============
const ifr = document.createElement('iframe');
ifr.name = ifr.id = 'ifr_'+Date.now();
document.body.appendChild(ifr);
const form = document.createElement('form');
form.method = "POST";
form.target = ifr.name;
form.action = ‘/thing/stuck/in/cache’;
document.body.appendChild(form);
form.submit();
Il y a quelques effets secondaires évidents : cela créera une entrée dans l'historique du navigateur, et est sujet aux mêmes problèmes de non-caching de la réponse. Mais elle échappe aux exigences de contrôle préalable qui existent pour la récupération, et puisqu'il s'agit d'une navigation, les navigateurs qui divisent les caches effaceront le bon.
Celui-ci est presque parfait. Firefox conservera l'objet bloqué pour les ressources d'origine croisée, mais uniquement pour les recherches ultérieures. Chaque navigateur invalidera le cache de navigation de l'objet, tant pour les ressources d'origine identique que pour les ressources d'origine différente.
\==============================
Nous avons essayé beaucoup de choses mais celle-là fonctionne plutôt bien. Le seul problème est que vous devez être en mesure d'amener ce script d'une manière ou d'une autre à la page de l'utilisateur final afin de pouvoir réinitialiser le cache. Nous avons eu de la chance dans notre cas particulier.