smarty文件缓存

当一个网站一段时间内访问量较大的时候,每次访问一个页面就会从新编译执行一次,从数据库中读取数据,那么就会给服务器带来很大的压力,而且有可能导致数据库崩溃,所以应该有个缓存机制来保存页面。

文件缓存是指把动态网页访问过后生成一个静态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(); //清除所有缓存

你可能感兴趣的:(smarty文件缓存)