【问题标题】:Google Chrome browser issue : reset/clear cacheGoogle Chrome 浏览器问题:重置/清除缓存
【发布时间】:2015-04-23 08:05:27
【问题描述】:

我已经在 google 等上广泛研究过这个问题。

这里是:google chrome 浏览器不会自动加载新的网页;相反,它会加载旧的。

我并没有太在意这个......直到我开始编码。

有趣的是:我什至没有意识到 chrome 浏览器是导致我的 PHP/HTML 代码无法运行的大多数情况的罪魁祸首!我会花几个小时编写和重写代码;当我测试它时,它会给我相同的“旧”输出。

纯属偶然,在一个美好的一天,我决定完全清除我的 chrome 缓存(清除我的浏览器数据)......并且,当我测试一些“旧" 代码,它给了我一个“新”的结果!!!!

想象一下我的惊讶。

从那天起,我养成了一种非常烦人、烦人但又很必要的习惯,即清除浏览器缓存每次我都会更改我的代码。

我的代码目前进展迅速,每次我想测试新代码时都必须刷​​新缓存,这让我越来越恼火。因此,我决定退出 google-chrome,转而使用 Mozilla。

不过,在进行了一些研究后,在这里找到了对这个问题的唯一参考:

https://productforums.google.com/forum/#!topic/chrome/xR-6YAkcASQ

在我第一次注意到这个问题之后,我从一开始就采用了这个解决方案。

显然,似乎没有其他解决方案。

那么,我为什么要写这篇文章呢?嗯,这很简单:我在这里发帖的原因是希望........也许.......有人知道另一种解决方法 --- 也许,可以注入的东西进入一个人的代码(或者,在过去的一年、一个月、一周,甚至在过去的 24 小时内,谷歌不知何故有了一个急需的“脑电波”,终于解决了这个问题!!)

【问题讨论】:

  • 我也遇到过这样的问题,甚至我花了几个小时在代码中查找错误,其中 chrome 是罪魁祸首。 :p 因此,每当我尝试一段代码时,我都会确保我也在其他浏览器中尝试过(firefox,opera)这实际上有帮助。
  • 是的,这里也一样。刚刚花了一天时间调试 .CSS / .PHP,结果发现问题就像清除缓存一样简单 - 哦,这就是我们学习的方式!

标签: php html google-chrome caching


【解决方案1】:

我知道两种可能对你有帮助的方法

  1. 在php中设置下一个HTTP头

    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    
  2. 在 Chrome 中,右键单击此页面并检查元素 => 检查器右上角有一个设置图标。单击此处,然后选择禁用缓存复选框。这将在您每次刷新页面并打开检查器时清除缓存。

希望这两种方法中的一种对您有所帮助。请记住,无论缓存如何,在服务器端执行的任何代码都会更改返回的页面。缓存仅影响下载的文件,如图像和脚本。

来源:http://en.wikipedia.org/wiki/Web_cache

【讨论】:

  • 谢谢,besciualex。只有一个问题:如果我勾选“禁用缓存”复选框............这总是有效吗?我的意思是:它会禁用谷歌浏览器的缓存吗?或者,这是我在任何给定时间浏览的特定页面的临时解决方案吗? (我检查了 Chrome 设置本身,但我没有找到那个复选框。它只出现在这里,在“检查元素”下)
  • @newuserphp 不幸的是,它只会在 Inspect Element 打开时禁用缓存。附言Ctrl + F5 是清除刷新,这意味着以这种方式完成的每次刷新都将完全重新加载所有缓存的元素。但是,当这不起作用时,我遇到了情况。 (我可以说它在大约 95% 的时间内都有效)
  • 嗯............所以,唯一 100% 有效的解决方案确实是谷歌帖子中的一个:需要手动清除缓存。令人惊讶的是,谷歌对这个问题一无所知。无论如何,谢谢:=)
【解决方案2】:

您提到的问题最有可能发生在 css 或 javascript 文件中。您可以做的是,当您在 html 页面中链接该文件时,您可以将一些查询字符串附加到文件链接 url,查询字符串值为文件的md5。

例如,如果你在 html 中链接一些 css 文件,你可以这样做:

<link rel="stylesheet" type="text/css" href="css/styles.css?v=1<?php echo md5_file("css/styles.css"); ?>" />

因此,每次您对“styles.css”文件进行更改时,它的 md5 值都会更改,并且由于链接不匹配,它将始终查找更新的文件而不是缓存的文件。

【讨论】:

  • 实际上,这发生在我的所有文件中,尤其是 HTML 和 PHP。我什至没有使用 JavaScript。
【解决方案3】:

已解决(对我而言) 我刚遇到这个问题,并尝试将元标记和标题信息添加到我的 php 页面,但在清除缓存后它仍然无法正常工作。

我与网络管理员交谈,发现他最近更新了 htaccess 中域的缓存标签。我让他看看他是否可以做到,这样 Apache 服务器就不会缓存在这个子域上。他让我知道他在 htaccess 中添加了一行来忽略过期标签,这在我再次清除浏览器缓存后起作用。现在它可以正常更新我的网页,而无需提取缓存数据。

希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 2017-05-07
    • 2016-02-18
    相关资源
    最近更新 更多