代码之家  ›  专栏  ›  技术社区  ›  Greg

为什么Safari不遵守我的缓存控制指令?

  •  9
  • Greg  · 技术社区  · 14 年前

    我希望浏览器始终加载一个特定的页面,特别是当用户按下浏览器后退按钮时。

    因此,我在这个页面的头部使用了下面的“cache control”指令(直接从我的代码中获取PHP)。

    $headers['Cache-Control'] = 'no-store, no-cache, must-revalidate, max-age=0';
    

    这适用于FF、IE和Chrome,但Safari(5.0.1)似乎忽略了该指令,无法重新加载页面(跨多个用户,因此似乎不是特定于安装程序的问题)。搜索没有发现任何已知的bug,所以我假设我的目标有问题。

    任何指点都会受到赞赏。

    更新:刚刚在上面找到这个答案。

    Safari browser ignoring my no-cache

    还没试过,但看起来很有希望。很奇怪,这是一个附加的身体标签,所以我怀疑。

    2 回复  |  直到 9 年前
        1
  •  5
  •   Community basarat    7 年前

    答案是在body标签中包含以下属性,以强制safari重新加载页面:

    onunload=""
    

    如:

    <body onunload="">
    

    我在这里找到这个: Safari browser ignoring my no-cache

    然后从这个线索中得到: Is there a cross-browser onload event when clicking the back button?

        2
  •  2
  •   Robert Brown    13 年前

    另请参阅此WebKit错误报告: https://bugs.webkit.org/show_bug.cgi?id=71509

    我也遇到了同样的问题,这似乎是野生动物中的一个bug。