克服Firefox上页面的不可缓存性

时间:2010-09-20 14:14:20

标签: firefox caching mozilla cache-control

我正在尝试构建Firefox扩展以从Web服务器获取页面并将其放入浏览器的缓存中,这样当用户请求该链接时,它将直接从缓存中检索,而不是询问原始网络服务器。

但我遇到了一些页面,这些页面放置了标题以避免缓存,例如“缓存控制:必须重新验证”,“缓存控制:无存储”,“缓存控制:无缓存”和“Pragma:no-cache”。

我正在尝试在页面到达时使用nsIHttpChannel的setResponseHeader覆盖这些标头。但是标题不会在相应的缓存条目中更改。然后我尝试使用nsICacheEntryDescriptor的setMetaDataElement来更改元数据键“response-head”。虽然数据已更改,但仍在从原始Web服务器检索页面。

有谁知道如何克服这个问题并使页面从Firefox的缓存中加载?这可能吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我使用XMLHttpRequest来检索页面,问题是我在“onreadystatechange”函数中更改了响应头。

或者,我使用观察者进行“http-on-examine-response”,并在“observe”方法中更改了响应头。缓存现在保留了更改。

通过查看BetterCache Firefox扩展程序的代码,我获得了洞察力。