当一个网站一段时间内访问量较大的时候,每次访问一个页面就会从新编译执行一次,从数据库中读取数据,那么就会给服务器带来很大的压力,而且有可能导致数据库崩溃,所以应该有个缓存机制来保存页面。
文件缓存是指把动态网页访问过后生成一个静态html静态网页,当再次访问这个页面时,呈现给用户的就是这个html网页,这样就不用每次访问都读一次数据库。
smarty中开启缓存:$smarty->caching=1; 默认保存在cache文件夹下。如果没有则自动创建。
更新缓存:1)删除对应的缓存
2)强制更新缓存 $smarty->force_cache=true;
3)更新html模板,或者更新布局文件、包含文件;
4)设置缓存的生命周期。 $smarty->cache_lifetime=5; 有效期5秒。默认是1个小时。
单模板多页面缓存:
当一个页面有分页显示的时候就需要用到单模板多页面缓存。
$smarty->display('demo.html ' , $_GET['pageno']);
局部不缓存:
当一个页面中大部分内容在短时间内不改变,而一小部分需要实时更新的话。就用到了局部不缓存。比如电影网站中:短时间内的电影不会改变,而电影排名需要实时更新的。
1.{$smarty.now nocache} //单个变量不缓存
2.{nocache}....{/nocache} //此区域内不缓存
缓存集合:
在一个手机网站中,我们可以发现比如机身颜色有白色、黑色、黄色,每当我们点击一个不同颜色的时候可以看到url中就会换一个静态页面,当点击选择移动4G、联通4G的时候又会换到另一个页面。此时有3X2的静态页面。
smarty中的代码如下:
$smarty->display('demo.html',"$brand|$sprice|$color"); //此时第二个参数中应是双引号。
清除缓存:
1.$smarty->clearCache('demo.html',"iphone|100|red"); //清除单个缓存
$smarty->clearCache('demo.html',"iphone"); //清除iphone下所有缓存
2.$smarty->clearAllCache(); //清除所有缓存