smarty缓存疑惑

来源:百度知道 编辑:UC知道 时间:2024/06/15 13:57:52
众所周知,smarty使程序与网页模板相分离。经过我的测试,发现smarty启用缓存的时候,并不是直接去调用缓存了的静态html页面。而是先将php程序先执行,而大部分的业务逻辑都是放在程序中来执行的,如果php程序需要10秒钟才能执行完毕。那么必须等过了10秒后smarty才会去调用静态html文件。且此时的html文件是以前缓存了的,不会与php程序中执行的结果相同。试问,执行那些php程序意义何在?请各位高手指点一二,小弟很困惑!
<?
include_once('inc/smarty_config.php');
$smarty->caching = true;
$smarty->cache_lefetime = 120;
include_once('inc/web_close_open.php');//引入网站是否关闭文件
require_once('inc/dao.php');
$dao = new Dao();
//引入获取栏目相应文章列表的函数文件
//function get_article_list_by_lm_id($lm_id,$db_dao) 返回格式 array('id'=>$row['id'],'title'=>$row['title'],'lm_id'=>$lm_id);
require_once('get_article_list_by_lm_id.php');
//根据栏目id,来获取栏目对应的文章列表
$lm_1_list = get_article_list_by_lm_id(1,$dao);
$lm_2_list = get_article_list_by_lm_id(2,$dao);
//查询所有的部门名称
$dao->query('select * fr

肯定要先解析PHP程序的,然后在PHP程序需要执行动态操作前,就执行是否存在缓存的判断,假如存在,则直接读取缓存内容,输出,假如不存在才读取数据库,执行其他的模型操作。
比如,你有一个数据库,里面有一个新闻列表
假如,你没有设置缓存,是不是每次访问,都要访问数据库
如果设置了缓存,你在访问页面的时候,首先判断是否存在缓存文件,如果存在直接读取缓存内容,输出。相比之下 ,你没有任何其他的额外操作,是不是省了很多?

你这个没用缓存啊~~倒!!!
用了缓存,缓存那部分是不用读取数据库了~~smarty的缓存可以达到变量级别的。