网站更新缓存

时间:2011-12-06 14:45:35

标签: php javascript mysql html css

如果你有一个实时网站(使用PHP,MySQL,JS,CSS),并说你改变了一些功能。确保用户访问网站时,更改的页面是否更新而不是从缓存中加载的最佳方法是什么?

5 个答案:

答案 0 :(得分:3)

对于那种共鸣,有文件加载器。加载css,js或任何其他文件时,必须设置缓存控制标头。您可以通过编辑.htaccess或使用php来完成。

.htaccess演示

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A300
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A3600
ExpiresByType text/css A3600
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresByType text/plain A300
ExpiresByType application/x-shockwave-flash A604800
ExpiresByType video/x-flv A604800
ExpiresByType application/pdf A604800
ExpiresByType text/html A300
</IfModule>

PHP演示:

 $offset = 3600 * 24;
 $expire = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
 header($expire);

答案 1 :(得分:1)

通过HTML,在Head部分放......

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

答案 2 :(得分:0)

如果符合标准,你无法真正控制每个浏览器的策略,但通常会发生的事情是浏览器会在决定是否应该从缓存加载或重新下载之前从每个HTML下载标头。

检查RFC HTTP 1.1 Header Field以获取更多详细信息(特别是在缓存控制下)

答案 3 :(得分:0)

除非您有某种形式的缓存,否则用户将请求数据并检查其是否已更新。除非您有活动缓存,否则通常不会缓存您的PHP。

您的JS和CSS必须通过HEADERS设置,例如Apache(或您使用的任何Web服务器)。

答案 4 :(得分:-1)

您可以使用window.applicationCache.swapCache();和window.location.reload();一旦javascript确认网站有更新版本,强制重新加载页面。

更好的选择可能是以某种方式提示用户,让他们知道网站已更新。这样,页面不会突然重新加载。

function updateCache(){
    window.applicationCache.swapCache();
    window.location.reload();
}

window.applicationCache.addEventListener("updateready", updateCache, false);