欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

thinkphp怎么写更新缓存功能

程序员文章站 2024-02-11 09:26:22
...
就是后台有个更新缓存的按钮 点击一下 所有用户(包括第一次访问的和 以前访问过的用户) 重新加载网页代码


回复讨论(解决方案)

最简单的办法就是删除全部缓存,有访客时自动重建

第一次访问的和 以前访问过的用户?
那?是??器?存吧。
?面?存???用?有什????

??器?存可以?置header("cache-control:no-cache,must-revalidate"); 实现。

直接遍历Runtime目录,删除即可。

同意楼上的,我用的ajax实现的

public function ajaxUpdateCache() {
if ($this->isPost()) {
if (file_exists(RUNTIME_FILE)) {
unlink(RUNTIME_FILE); //删除RUNTIME_FILE;
}
$cachedir = RUNTIME_PATH . "/Cache/"; //Cache文件的路径;
if ($dh = opendir($cachedir)) { //打开Cache文件夹;
while (($file = readdir($dh)) !== false) { //遍历Cache目录,
unlink($cachedir . $file); //删除遍历到的每一个文件;
}
closedir($dh);
}
$tempdir = RUNTIME_PATH . "/Temp/"; //Cache文件的路径;
if ($dh = opendir($tempdir)) { //打开Cache文件夹;
while (($file = readdir($dh)) !== false) { //遍历Cache目录,
unlink($tempdir . $file); //删除遍历到的每一个文件;
}
closedir($dh);
}
$this->ajaxReturn(array("success" => true), 'JSON');
} else {
$this->ajaxReturn(array("success" => false, "msg" => "参数错误"), 'JSON');
}
}

不知道你这个需求是为了什么
浏览器有多个缓存机制,你后台更新了页面数据,它会知道的
如果想后台点了按钮,前台正在浏览的用户立刻刷新,就需要用ajax轮询,每隔多少秒问一次服务器是否需要刷新

这个跟runtime有什么关系啊 跟php没关系 静态页面的缓存