繁体   English   中英

(如何)我可以指示Chrome / Firefox / IE /…不要缓存特定网站?

[英](How) can I instruct Chrome/Firefox/IE/… not to cache a specific website?

我建立了一个浏览器扩展程序,该扩展程序在启动时会调用Web服务,并从中检索JSON结果。 JSON结果包含将在扩展的弹出窗口中显示的数据。 使用准备好的预定更新服务,每天至少更新一次此数据。 此外,数据会在一天中不定期手动更新。

从Web服务检索的数据不会自动适应所做的更改。 特别是,扩展名从Web服务检索旧结果。 该Web服务已经过测试,并且始终返回最新结果,因此,这不是服务器端的问题(至少与数据的计算,存储和提供无关)。

我注意到有时Web服务似乎返回旧结果,然后在刷新页面后更新这些结果。 我相信这是由于某些客户端或服务器端缓存机制引起的。

研究主题尚未产生任何有用的资源或材料

我是否可以指示扩展程序不缓存来自Web服务的结果和/或指示服务器不允许/保留缓存的结果?

非常感谢有关此问题的任何建议和/或资源。

一种常用的方法是向您的HTTP GET路径添加一个随机扩展名-一个参数,服务器不使用。 这样,浏览器将无法使用缓存的数据,因为它没有该URL的任何数据。 服务器将简单地忽略附加参数。

这是一个示例,请在每次调用服务器时更改random参数的值(此示例中为12345)。

// Original URLs
http://www.example.com/myservice
http://www.example.com/myservice?param=data

// With an Additional HTTP Parameter
http://www.example.com/myservice?random=12345
http://www.example.com/myservice?param=data&random=12345

如果您可以控制服务器软件,则可以将其配置为设置适当的缓存相关HTTP标头值。 为了防止缓存,您需要设置Cache-Control标头值和Expires标头值。 检查此线程以获取跨浏览器解决方案。 为了不再次将尚未过时的数据传输到客户端,请再次使用ETagLast-Modified标头值。 有关ETag ,条件请求和HTTP缓存的详细信息,请参阅HTTP缓存教程HTTP协议规范

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM