【问题标题】:Cross Tab Browser Caching, Forcing Refresh跨标签浏览器缓存,强制刷新
【发布时间】:2012-10-25 21:14:43
【问题描述】:

我有一个 JSON 资源,我们称之为 /game/1,它被长期公开缓存。基于一些客户端逻辑,我想偶尔刷新这个资源(例如,当我知道服务器端应该发生某些事情时——在我的例子中是游戏结束)。

刷新后,我希望所有下游缓存都使用新内容进行更新,因此对 /game/1 的任何请求都将获取刷新后的内容。在这种情况下,附加带有随机参数的查询字符串将不起作用。

我尝试在请求中添加以下标头,这似乎在 IE 以外的浏览器中以一种喜怒无常的方式工作:

    headers['Cache-Control'] = 'max-age=0, no-cache';
    headers['Pragma'] = 'no-cache';

使用这些标头,Chrome 似乎有时会刷新内容,大概是基于一些内部启发式方法。

对于我想要实现的目标,有人有更好的想法吗?

【问题讨论】:

    标签: http caching http-headers browser-cache


    【解决方案1】:

    尝试将 meta http-equiv="expires" 内容设置为零。

    将“过期”元标记设置为零应该会强制浏览器在每次访问页面时重新加载所有内容。强制不断删除缓存显然会减慢页面加载速度(如果所有浏览器都遵守它!)但也许这是一个可以接受的权衡。然而,这对下游缓存无济于事,因此远非完整的解决方案。

    【讨论】:

    • 禁用缓存显然可以修复错误,但这个问题是关于如何使用最佳缓存获得正确的行为。我仍然没有找到解决方案:)
    猜你喜欢
    • 2011-10-11
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 2019-12-03
    • 2010-11-15
    • 2022-12-05
    • 1970-01-01
    • 2012-02-11
    相关资源
    最近更新 更多