Question

Je suis en train de construire une extension de Firefox pour obtenir une page d'un serveur Web et le mettre dans le cache du navigateur, de sorte que lorsque l'utilisateur demande ce lien, il sera récupéré directement à partir du cache, au lieu de demander au serveur Web d'origine.

Mais je vais avoir du mal avec quelques pages qui mettent en-têtes pour éviter cacheability, tels que "Cache-control: must-revalidate", "Cache-control: no-store", "Cache-Control: no-cache" et "Pragma: no-cache".

Je suis en train d'écraser ces en-têtes avec setResponseHeader de nsIHttpChannel lorsque la page arrive. Mais les en-têtes ne sont pas modifiés dans l'entrée de cache correspondante. Ensuite, j'essaie de setMetaDataElement de nsICacheEntryDescriptor pour modifier la clé de métadonnées « réponse-tête ». Bien que les données aient changé, la page est encore en cours de récupération à partir du serveur Web d'origine.

Quelqu'un sait comment résoudre ce problème et rendre les pages être chargées à partir du cache de Firefox? Est-ce possible?

Merci à l'avance.

Était-ce utile?

La solution

J'utilisais XMLHttpRequest pour récupérer la page, et le problème est que j'ai changé les en-têtes de réponse dans la fonction « onreadystatechange » J'ai fait.

Alternatevely, j'utilisé l'observateur de « http-sur-interrogatoire-réponse » et modifié les en-têtes de réponse dans la méthode « observer ». Le changement est maintenant conservé par le cache.

J'ai l'aperçu en regardant le BetterCache Code de l'extension Firefox.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top