如果服务器返回缓存预防标头,是否需要jQuery缓存禁用技巧?

时间:2012-11-22 14:08:55

标签: jquery http http-headers browser-cache http-caching

我需要完全阻止Ajax调用结果的缓存。 Jquery ajax()函数有一个cache: false选项。该选项将时间戳附加到每个请求的资源(?_=1353592676117)。这应该做的工作,但不是很优雅。它会污染日志,对于不熟悉这种技巧的人来说可能会让人费解。

如果服务器返回一组正确的缓存预防标头(no-cacheno-storemust-revalidate,还可选max-age=0),是否需要启用此选项?如果是这样,在哪些情况下标题是不够的?

2 个答案:

答案 0 :(得分:2)

如果要在服务器上设置正确的缓存预防响应标头,则无需设置cache: false标志。

答案 1 :(得分:0)

作为参考:我发现了一个忽略缓存禁用标题的情况。在Chrome中,如果您点击后退按钮返回执行JavaScript的页面,则会重新执行脚本,但是对脚本发出的Ajax调用的响应将从缓存中返回,即使它们最初返回时也会返回缓存禁用标头