问题:
我在客户的网站上托管了一个小部件,该小部件对于网站上的每个页面都是不同的。
为了呈现小部件,客户端在其页面上包含一个脚本标签。该脚本标记为网站上的每个页面加载,它返回的代码取决于页面。
因此,如果此脚本被缓存,最终结果是我们为错误页面提供了一个小部件。
现在,当我们提供脚本时,我们在响应头中设置
缓存控制:max-age=0 过期时间:过去 24 小时
但有时浏览器仍会缓存脚本。
问题:
有没有办法在所有情况下都使用 http 标头来停止缓存,还是我们必须采取完全不同的方法?
更新:
topek 推荐的标头大大提高了脚本的不可缓存性。但是,(再次在 Chrome 中似乎是最具缓存攻击性的)当使用后退、前进或重新加载按钮时,脚本仍会被缓存。如果你真的点击任何东西,它将从服务器获取。
似乎停止缓存的唯一万无一失的方法是设置保证每个页面加载都不同的脚本源(如 esilija 和 tejs 所建议的那样)。