smarty 页面缓存的原理是这样吗??? YuNa123 (于娜小姐) +++++++++++++++呵呵,水源的名人啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 于娜小姐的帖子,即使不知道也得装知道~----------------------------------------------------------------你看下templates_c这个文件家里的文件,就忄光然大忄吾了 当然不是,smarty是编译的模版 iasky(C#_ASP_PHP)当然不是,smarty是编译的模版------------------------除此之外呢?是不是把HTML静态页面放到了内存里,所以速度快? smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定smarty的cache属性为true时,在smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。 你看看那个template_c目录下,那些都是smarty自己生成的文件,里面包含了它的原理。这是我的template_c下生成的一个文件:<?php /* Smarty version 2.6.13, created on 2006-10-27 07:16:30 compiled from msg.html */ ?><div><?php echo $this->_tpl_vars['msg_title']; ?>:<?php echo $this->_tpl_vars['msg']; ?></div>这下一目了然了,smarty并不是根据动态页面生成静态页。--------------------------------------YuNa123(于娜小姐) ( ) 信誉:85 Blog 2006-10-30 09:31:00 得分: 0 iasky(C#_ASP_PHP)当然不是,smarty是编译的模版------------------------除此之外呢?是不是把HTML静态页面放到了内存里,所以速度快?------------------------------------对于这点你理解错了,按照原理来看,smarty会进行编译,这会大大降低效率,所以很多人写BBS不用它。有的程序使用了它运行的会快,那是cache的功劳,而非smarty,当然,smarty已经内置了cache的控制,它不会每次都进行编译,只是当数据改变时,才进行编译。 smarty的缓存是用硬盘缓存,不是内存 smarty包含模板部分和cache部分template_c放的是编译后的模板,cache目录才是存放cache的页面的地方.模板改变会导致重编译模板,cache是否重新生成,受程序或时间控制. 不完全是.静态页面是直接生成html文件smarty的cache还是php文件去读取的,只是缓存了模板执行的结果. 楼上的,你的意思是smarty 不是直接生成html静态页面文件, smarty的cache还是php文件去读取的,只是缓存了模板执行的结果. “smarty 不是直接生成html静态页面文件, smarty的cache还是php文件去读取的,只是缓存了模板执行的结果”是的,是这样的!“smarty会进行编译,这会大大降低效率,所以很多人写BBS不用它。”这是错误的观点!smarty编译的是模板文件:将模板文件编译成php、html混合编码的php文件一经编译就不会改变,除非又对模板进行了编辑BBS只用内容频繁变化,但格式是不变的 简单的说吧,smarty开启静态缓存时,是会生成html静态页面,此时可以不执行任何逻辑,只要首先判断是否有缓存生成,有的话直接输出,然后直接停止脚本,这样效率是非常高的,相当于直接打开静态页面,不开启静态缓存时,那就会生成模板编译文件,把所有smarty标签转换成echo变量的形式,并不能提高任何效率,但也不会增加太多额外的执行时间,“smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定smarty的cache属性为true时,在smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。” 请教关于php中使用ajax实现菜单联动查询的思路和方法 php客户端与C语言服务器结构体如何通讯(UDP)? 一个基础的php+ajax问题 一个关于dba的问题,着急,谢谢 请问php服务器用集成环境好吗 数组输出问题 url rewrite,可以禁止输入实际url访问的访问吗? 发布一套新的框架,带(pfc基础类、一个程序的实例) 如何控制框架同步? pdf2htmlex的调用 请教:一个域名指向动态地址 PHPChina/Zend 天津群 官方QQ群 3713860
----------------------------------------------------------------
你看下templates_c这个文件家里的文件,就忄光然大忄吾了
------------------------
除此之外呢?是不是把HTML静态页面放到了内存里,所以速度快?
true时,在smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。
compiled from msg.html */ ?>
<div><?php echo $this->_tpl_vars['msg_title']; ?>
:<?php echo $this->_tpl_vars['msg']; ?>
</div>这下一目了然了,smarty并不是根据动态页面生成静态页。
--------------------------------------YuNa123(于娜小姐) ( ) 信誉:85 Blog 2006-10-30 09:31:00 得分: 0
iasky(C#_ASP_PHP)当然不是,smarty是编译的模版
------------------------
除此之外呢?是不是把HTML静态页面放到了内存里,所以速度快?------------------------------------
对于这点你理解错了,按照原理来看,smarty会进行编译,这会大大降低效率,所以很多人写BBS不用它。有的程序使用了它运行的会快,那是cache的功劳,而非smarty,当然,smarty已经内置了cache的控制,它不会每次都进行编译,只是当数据改变时,才进行编译。
template_c放的是编译后的模板,
cache目录才是存放cache的页面的地方.模板改变会导致重编译模板,
cache是否重新生成,受程序或时间控制.
静态页面是直接生成html文件
smarty的cache还是php文件去读取的,只是缓存了模板执行的结果.
是的,是这样的!
“smarty会进行编译,这会大大降低效率,所以很多人写BBS不用它。”
这是错误的观点!
smarty编译的是模板文件:将模板文件编译成php、html混合编码的php文件
一经编译就不会改变,除非又对模板进行了编辑
BBS只用内容频繁变化,但格式是不变的