我是否可以通过浏览器获取最新版本的页面

时间:2011-02-21 17:17:55

标签: javascript

我有在浏览器中运行的应用程序。当我对页面和javascript进行更改时,我开始接到来自获得奇怪结果的用户的调用。我告诉他们清除他们的缓存,一切都很好。

有没有办法可以强制或建议浏览器获取新版本的页面?

感谢

3 个答案:

答案 0 :(得分:3)

您可以在服务器端设置Cache-Control: no-cache标头,以防止浏览器缓存您的文件。

答案 1 :(得分:1)

修改

有关停止缓存页面的信息,请参阅此页面:

http://www.webmasterworld.com/forum21/10628.htm

在此答案中查看.js / .css的建议:

How to force browser to reload cached CSS/JS files?

我们的想法是在文件名发生变化时为其加上时间戳,因此文件名会发生变化,并且浏览器会被迫加载新副本。

答案 2 :(得分:1)

所以我认为我找到了完美的解决方案。我发现如果你放一个?以及文件名后的一些唯一字符,它强制浏览器在该版本更改时获得新版本。

所以而不是:

<link href="css/mycss.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="./js/ngen.js"></script>

代码:

<link href="css/mycss.css?1.0.28" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="./js/ngen.js?1.0.28"></script>

因为我使用php,所以我在我的主config.php中创建了一个全局版本,并将其添加到文件引用中。

$GLOBALS['V_UNIQUE'] = "?1.0.28" // my current release number

<link href="css/mycss.css?1.0.28<?php echo $GLOBALS['V_UNIQUE']?>" rel="stylesheet" type="text/css" />