Opera忽略了标头中的缓存指令

时间:2011-12-13 16:43:56

标签: html cross-browser opera browser-cache

已经阅读this question我还没有弄清楚我的网页http://opentox.ntua.gr/vlab/pid/被Opera缓存的问题是什么。这是重现问题的方法:

  1. 使用Opera(版本11.60,版本1185,用于Linux)导航到http://opentox.ntua.gr/vlab/pid/
  2. 不要更改任何参数 - 只需点击“运行”即可。等一下,你会得到一些图表。
  3. 现在选中“Open Loop”复选框,然后再次单击“Run”。你应该得到不同的结果,但你没有。图像被缓存,不会重新加载。
  4. 强制重新加载第一张图片:右键单击图像,然后点击“重新加载图片”。你会注意到重新加载的图像并且已经改变了......
  5. 现在转到工具>偏好>高级>历史。并将“Memory Cache”设置为“Off”,“Check Documents”设置为“Always”,“Check Images”设置为“Always”。单击“立即清空”并退出。然后,问题得到解决。有没有办法通过指定HTML文档的正确标题来强制Opera重新加载图像,而不是让用户全局更改其配置?

    请注意,该问题不会在其他浏览器中重现,并且HTML文档的标题中已包含以下指令:

    <meta http-equiv="Pragma" content="no-cache"/>
    <meta http-equiv="CACHE-CONTROL" content=
       "no-store, no-cache, must-revalidate, 
        post-check=0, pre-check=0, max-age=0"/>
    <meta http-equiv="Expires" content="0"/>
    

1 个答案:

答案 0 :(得分:3)

图形文件有自己的标题,缓存信息巫婆在你的情况下告诉Opera可以使用缓存文件 - 你可以使用例如firebug for ff检查标题。 尝试在.htaccess

中添加类似的内容

有关此内容的更多信息http://httpd.apache.org/docs/2.0/mod/mod_expires.html

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/gif "access plus 1 second"
    ExpiresByType image/jpeg "access plus 1 second"
    ExpiresByType image/png "access plus 1 second"
</IfModule> 

它应该可以工作,但可能有更简洁的方法来编写它 - 我不是.htaccess的专家。

你也可以通过php脚本提供文件,首先吐出一个带有no-cache的正确的头,然后写出从hd读取的gif。 希望这会有所帮助。