2012-04-09 87 views
0

我有关于禁用浏览器缓存的问题。我已经找到了一些解决方案,只是想知道是否有更好或更常见的方法。所以我GWT应用程序,并以禁用兑现我可以用接下来的选项:如何以编程方式禁用浏览器缓存

  1. 添加到URL伪参数
  2. 把HTML页面上<meta http-equiv="pragma" content="no-cache">
  3. 设置HTTP头:

    header("Pragma-directive: no-cache"); 
    header("Cache-directive: no-cache"); 
    header("Cache-control: no-cache"); 
    header("Pragma: no-cache"); 
    header("Expires: 0"); 
    
+0

它已经问我猜。检查这个[链接](http://stackoverflow.com/questions/2558779/how-to-programmatically-disable-html-caching-with-gwt) – AurA 2012-04-09 11:23:52

+1

你列出的头包括一些幻想/一厢情愿的想法。 'expires:0'是一个语法错误,'* -directive'是无意义的,'Pragma:no-cache'自90年代末以来就不相关。唯一重要的是'Cache-control:no-cache'。 ''无法工作,因为它在解析之前被缓存。 – Kornel 2012-04-09 11:28:18

+0

那么,我应该使用第一个选项?但这对我来说是最不方便的。我宁愿使用选项3。 – IgorDiy 2012-04-09 11:32:24

回答

1

最重要的是

header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); #Expires sometime in the past 
header("Cache-control: no-cache");     #Disables caching 

此外,请将唯一参数添加到网址以确保。如果您使用浏览器后退按钮,有时整个DOM将被缓存,并且不会提取任何新内容,除非您使用JavaScript动态地执行此操作,并向请求中添加唯一的ID。

通常,您希望在服务器配置中设置大部分这些标头,以便您可以使用正确的标头也可以提供普通图像和其他静态内容。

相关问题