网站更新缓存

website update cache

本文关键字:缓存 更新 网站      更新时间:2023-09-26

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

因此有文件加载器。当你加载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);

通过HTML,在header部分放置…

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

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

查看RFC HTTP 1.1报头字段获取更多详细信息(特别是在缓存控制下)

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

你的JS和CSS将不得不通过HEADERS说Apache(或任何你使用的web服务器)。

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

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

function updateCache(){
    window.applicationCache.swapCache();
    window.location.reload();
}
window.applicationCache.addEventListener("updateready", updateCache, false);