【问题标题】:Internet Explorer (6 and higher) cache and temporary filesInternet Explorer(6 和更高版本)缓存和临时文件
【发布时间】:2010-12-27 15:59:12
【问题描述】:

如何防止浏览器将特定页面存储在临时文件夹中?有没有使用元标签的解决方案?我尝试过使用元标记:pragma、expire、cache-control,但它不起作用。

【问题讨论】:

    标签: html internet-explorer caching


    【解决方案1】:

    这是应该在所有浏览器中工作的完整响应头集:

    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="0">
    

    Cache-Control 符合 HTTP 1.1 规范。 Pragma 符合 HTTP 1.0 规范。 Expires 是为了避免代理缓存内容。

    如果仍然失败,那么您只需在测试前清除浏览器缓存。

    如果仍然无效,那么问题出在其他地方。常见的情况是初学者认为脚本、样式表和图像等包含的文件是根据父页面的说明进行缓存的。因此这是正确的。它们都被视为独立的请求,因此有自己的一组可控响应头。

    【讨论】:

      【解决方案2】:

      不,你不能。 MSHTML 必须将文件存储一段时间才能呈现它。这是一个内置的设计要求。

      【讨论】:

      • 刷新后我需要清除缓存,但它不起作用。只有当我重新启动浏览器缓存被清除。
      • 这是为了调试,还是其他原因。如果你只是为了自己的开发目的想清除它,只需使用命令行 rmdir /s /q 缓存目录即可。
      • 不,这是为了正常使用web应用程序,因为它使用oracle mapviewer渲染地图,需要刷新页面以更新地图内容。
      【解决方案3】:

      This question(或者更确切地说,它的答案)应该会有所帮助。不过,我认为没有任何方法可以确定浏览器不会将内容写入临时文件(出于缓存以外的目的)。

      【讨论】:

        【解决方案4】:

        我过去使用的一种方法是将唯一值附加到查询中

        例如:ImageGen.php?rid=548268

        rid 是一个随机生成的数字。

        【讨论】:

        • 我认为根据 HTTP 规范不应该工作(尽管它至少在 Firefox 中工作)。 en.wikipedia.org/wiki/HTTP_ETag - ETag 是正确应用的相同概念
        • 等一下,这是一个专门针对 Internet Explorer 的工作,我们过去不得不使用它,尤其是图像生成之类的东西。也许“可怕”,但我们并不生活在一个完美的世界中。
        • @Bozho (经常碰面,不是吗?:) ) - 实际上,它应该可以工作,尽管它是旧的 - 但前提是服务器不包括任何过期标题。规范中的第 13.9 节:w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.9 但是,这是一个很长的时间,因为这是执行此操作的正确方法。 @Pino:IE6 尊重过期标头。
        • Pino:图像应提供正确的响应标头。这是 imageservlet 的职责,而不是 JSP 页面的职责。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-09
        • 2012-07-11
        • 1970-01-01
        • 1970-01-01
        • 2016-05-23
        • 2010-09-13
        • 2010-10-08
        相关资源
        最近更新 更多