【发布时间】:2011-04-23 17:30:47
【问题描述】:
我们有一个 PHP 应用程序。当我们在此应用程序中进行更新和更改时,问题就出现了。有时,由于浏览器缓存,用户无法获得应用程序的最新版本(主要更改 HTML 和 javascript)。一旦我们意识到这一点,我们就可以在我们的应用程序中包含下一个代码(我们在任何 HTML 发送到浏览器之前执行它)
function clean_cache(){
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header("Cache: no-cache");
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");
}
但我们仍然有一些用户使用旧版本的应用程序。 我们读到一个可能的解决方案是使用 javascript 通过 ajax 询问服务器是否有更新。如果是这样,请强制重新加载。如果这是解决我们问题的最佳方法:我们如何实施此解决方案?如果您有任何其他可能的解决方案,我们将很高兴知道。
谢谢
【问题讨论】:
-
我的猜测是正在查看“旧”版本程序的用户有 IE。因此 ajax 也是我的选择,因为如果您单击重新加载按钮,IE 有时甚至不会尝试重新加载页面,因此不会注意到更改。
-
定义“应用程序的最新版本”。这是否与 HTML 代码、JavaScript 或 CSS 资源或图像有关?
-
我编辑了它。但主要是这可能是我们需要做的任何改变:HTML 或 javascrpt,但我们也计划添加图像,这可能会在接下来的几周内成为问题。