2010-09-20 2 views
0

J'essaye de construire une extension vers Firefox pour obtenir une page d'un serveur web et la mettre dans le cache du navigateur, de sorte que lorsque l'utilisateur demande ce lien, ça va être récupéré directement à partir du cache, au lieu de demander au serveur Web d'origine.Surmonter la non-cacheabilité des pages sur Firefox

Mais j'ai des problèmes avec certaines pages qui mettent des en-têtes pour éviter la cachabilité, telles que "Cache-control: must-revalidate", "Cache-control: no-store", "Cache-control: no-cache "et" Pragma: no-cache ". J'essaye d'écraser ces en-têtes avec setResponseHeader de nsIHttpChannel quand la page arrive. Mais les en-têtes ne sont pas modifiés dans l'entrée de cache correspondante. Ensuite, j'essaie setMetaDataElement de nsICacheEntryDescriptor pour changer la clé de métadonnées "response-head". Bien que les données soient modifiées, la page est toujours récupérée sur le serveur Web d'origine.

Est-ce que quelqu'un sait comment résoudre ce problème et charger les pages à partir du cache de Firefox? Est-ce possible?

Merci d'avance.

Répondre

1

J'utilisais XMLHttpRequest pour récupérer la page, et le problème était que j'ai changé les en-têtes de réponse dans la fonction "onreadystatechange" que j'ai faite. Alternativement, j'ai utilisé l'observateur pour "http-on-examine-response", et modifié les en-têtes de réponse dans la méthode "observer". Le changement est maintenant conservé par le cache.

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

Questions connexes