【问题标题】:Opera neglects the caching directives in the headerOpera 忽略了标头中的缓存指令
【发布时间】:2011-12-13 16:43:56
【问题描述】:

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

  1. 使用 Opera(版本 11.60,内部版本 1185,适用于 Linux)导航到 http://opentox.ntua.gr/vlab/pid/
  2. 不要更改任何参数 - 只需单击运行。稍等一下,你会得到一些图表。
  3. 现在选中“开环”复选框并再次单击“运行”。你应该得到不同的结果,但你没有。图片已缓存,不会重新加载。
  4. 强制重新加载第一个图像:右键单击图像并单击“重新加载图像”。您会注意到重新加载的图像并已更改...

现在转到工具 > 首选项 > 高级 > 历史。并将“内存缓存”设置为“关闭”,将“检查文档”设置为“始终”,将“检查图像”设置为“始终”。也单击“立即清空”并退出。然后,问题就解决了。有没有办法通过指定 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"/>

【问题讨论】:

    标签: html cross-browser opera browser-cache


    【解决方案1】:

    图形文件有自己的带有缓存信息的标头,在您的情况下,女巫告诉 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 脚本提供文件,首先吐出一个没有缓存的正确标头,然后写出从 hd 读取的 gif。 希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      相关资源
      最近更新 更多