代码之家  ›  专栏  ›  技术社区  ›  Andre Pena

如何防止Internet Explorer在不使用随机查询字符串的情况下缓存HTML?

  •  4
  • Andre Pena  · 技术社区  · 15 年前

    我们目前正在使用随机查询字符串来防止Internet Explorer在回发时缓存HTML,但是我们正在实现URL重新写入,如果我们可以删除这些随机参数,那就更好了。

    在这种情况下,最好的做法是什么?

    4 回复  |  直到 13 年前
        1
  •  6
  •   cllpse    15 年前

    你试过了吗 no-cache and expires meta-tags ?

    除此之外,随机生成的查询字符串是可行的方法。在我看来,这没什么大不了的。 域.com/stories/man-walks-on-moon/s34b 不是让我的眼睛流血。而且你仍然可以在搜索引擎中获得很好的索引。

        2
  •  3
  •   EricLaw    15 年前

    这个 适当的 控制缓存的方法是使用适当的缓存头。 http://www.fiddler2.com/redir/?id=httpperf 详细描述了这一点。

    使用随机查询字符串是处理不控制服务器头的情况的简单方法。

        3
  •  2
  •   nefedor    13 年前

    说到HTTP头,下面的组合使典型的浏览器重新加载页面:

    Cache-Control: no-cache, no-store, max-age=0
    Pragma: no-cache
    Expires: -1
    

    如果HTTP头不可控,那么HTML头中的元标记就可以了。 然而,IE并不是典型的浏览器,尤其是当点击后退按钮时。根据我的经验,即使是上面设置的头,后退按钮也不会麻烦询问服务器,而是从缓存中恢复页面。但是有一种方法可以解决这个问题:添加另一个标题:

    Vary: *
    

    这一个将导致IE7-8重新加载页面上的后退按钮,以及点击。

        4
  •  0
  •   TimGThomas    15 年前

    如果您有Internet Explorer 8或 Developer Tools 插件已安装,您可以从插件窗口的“缓存”菜单中选择“始终从服务器刷新”(按“F12”显示)。