我将构建一个网站,其中包含数据库中的动态内容(属性如标题,URL等)。我想每次查询所有内容并分配变量都是非常不现实的,所以我已经阅读了关于缓存的内容。数据库中的Smarty缓存站点属性
我使用Smarty模板,系统。
include('libs/Smarty/Smarty.class.php');
$smarty = new Smarty;
$smarty->setCaching(true);
if (!$smarty->isCached('index.tpl')) {
//query here and assign..
$smarty->assign('title', 'Test');
}
$smarty->display('themes/simple/index.tpl');
- 上空时,它再次检查缓存中的代码?如果我在数据库网站属性中进行了更改,我希望立即更改我的网站,可以将这些网站用于维护等非常重要的事情。
- 我是否真的需要查询所有数据页面加载来获取网站信息,还是有任何解决方案,比如用缓存检查数据库行结构,或者类似的东西?
解决方案,我需要!
更新: 我尝试clearCache的方法,但它似乎并没有正常工作。我更新数据库,但“clearCache”方法似乎没有被触发,或者什么。
$smarty = new Smarty;
$smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT);
//just to test
$smarty->clearCache('index.tpl');
if (!$smarty->isCached('index.tpl')) {
//do stuff here
好吧,如果你想改变被立即提供给用户,你不应该使用缓存可言,这是它:-) –
有没有办法像检查数据库表已被更改,如果是的话,重新查询一切,这应该节省一些时间?还是我误会了? – John
不是没有查询数据库,这是你想要避免的。 –