我们目前正在使用随机查询字符串来阻止Internet Explorer在回发时缓存HTML,但是我们正在实现URL重写,如果我们可以删除这些随机参数,那就太好了。
在这种情况下,最好的实践是什么?
答案 0 :(得分:6)
您是否尝试过no-cache and expires meta-tags?
除此之外,随机生成的查询字符串是可行的方法。在我看来,这并不是什么大不了的事。 domain.com/stories/man-walks-on-moon/s34b 并没有让我的眼睛流血。就搜索引擎而言,你仍然可以获得很好的索引。
答案 1 :(得分:3)
控制缓存的正确的方法是使用正确的缓存标头。 http://www.fiddler2.com/redir/?id=httpperf详细描述了这一点。
使用随机查询字符串是一种简单的方法,可以处理不控制服务器标题的情况。
答案 2 :(得分:2)
说到HTTP标头,以下组合使典型的浏览器重新加载页面:
Cache-Control: no-cache, no-store, max-age=0
Pragma: no-cache
Expires: -1
如果HTTP标头不可控,HTML头中的META标签就可以。 但是,IE不是典型的浏览器,尤其是当后退按钮被击中时。根据我的经验,即使上面设置了标题,后退按钮也不会打扰询问服务器,但会从缓存中恢复页面。但有一种方法可以解决这个问题:添加另一个标题:
Vary: *
这个将导致IE 7-8在后退按钮命中时重新加载页面。
答案 3 :(得分:0)
如果您安装了Internet Explorer 8或Developer Tools插件,则可以从插件窗口的“缓存”菜单中选择“始终从服务器刷新”(按“F12”显示)。