(如何)我可以指示 Chrome/Firefox/IE/... 不缓存特定网站?
(How) can I instruct Chrome/Firefox/IE/... not to cache a specific website?
我构建了一个浏览器扩展,它在启动时调用一个 Web 服务,从中检索 JSON 结果。 JSON 结果包含将显示在扩展程序弹出窗口中的数据。使用准备好的预定更新服务,此数据每天至少 更新一次。此外,数据在一天内不定期手动更新。
从 Web 服务检索的数据不会自动适应所做的更改。特别是,该扩展程序从 Web 服务中检索旧结果。 Web 服务已经过测试,并且总是 return 是最新的结果,因此这不是服务器端的问题(至少在数据的计算、存储和提供方面不是)。
我注意到有时 Web 服务显示 return 旧结果,然后在页面刷新后更新。我相信这是由于客户端或服务器端的某些缓存机制造成的。
研究该主题未产生任何有用的资源或material
我是否可以指示扩展程序不缓存来自 Web 服务的结果and/or指示服务器不allow/serve 缓存结果?
非常感谢有关此问题的任何建议 and/or 资源。
一种常用的方法是向您的 HTTP GET 路径添加一个随机扩展名 - 一个不被服务器使用的参数。通过这样做,浏览器无法使用缓存数据,因为它还没有得到任何 URL。服务器将简单地忽略附加参数。
这是一个例子,请在每次调用服务器时更改随机参数的值(本例中为 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 header 值。要防止缓存,您需要设置 Cache-Control
header 值和 Expires
header 值。检查这个 thread for a cross-browser solution. In order to not transfer to the clients data that is not stale yet again and again use either ETag
or Last-Modified
header values. For more information about ETag
, conditional requests and HTTP caching in general check HTTP caching tutorial and HTTP protocol specification.
我构建了一个浏览器扩展,它在启动时调用一个 Web 服务,从中检索 JSON 结果。 JSON 结果包含将显示在扩展程序弹出窗口中的数据。使用准备好的预定更新服务,此数据每天至少 更新一次。此外,数据在一天内不定期手动更新。
从 Web 服务检索的数据不会自动适应所做的更改。特别是,该扩展程序从 Web 服务中检索旧结果。 Web 服务已经过测试,并且总是 return 是最新的结果,因此这不是服务器端的问题(至少在数据的计算、存储和提供方面不是)。
我注意到有时 Web 服务显示 return 旧结果,然后在页面刷新后更新。我相信这是由于客户端或服务器端的某些缓存机制造成的。
研究该主题未产生任何有用的资源或material
我是否可以指示扩展程序不缓存来自 Web 服务的结果and/or指示服务器不allow/serve 缓存结果?
非常感谢有关此问题的任何建议 and/or 资源。
一种常用的方法是向您的 HTTP GET 路径添加一个随机扩展名 - 一个不被服务器使用的参数。通过这样做,浏览器无法使用缓存数据,因为它还没有得到任何 URL。服务器将简单地忽略附加参数。
这是一个例子,请在每次调用服务器时更改随机参数的值(本例中为 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 header 值。要防止缓存,您需要设置 Cache-Control
header 值和 Expires
header 值。检查这个 thread for a cross-browser solution. In order to not transfer to the clients data that is not stale yet again and again use either ETag
or Last-Modified
header values. For more information about ETag
, conditional requests and HTTP caching in general check HTTP caching tutorial and HTTP protocol specification.