YuNa123 (于娜小姐)  
+++++++++++++++
呵呵,水源的名人啊

解决方案 »

  1.   

    于娜小姐的帖子,即使不知道也得装知道~
    ----------------------------------------------------------------
    你看下templates_c这个文件家里的文件,就忄光然大忄吾了
      

  2.   

    当然不是,smarty是编译的模版
      

  3.   

    iasky(C#_ASP_PHP)当然不是,smarty是编译的模版
    ------------------------
    除此之外呢?是不是把HTML静态页面放到了内存里,所以速度快?
      

  4.   

    smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定smarty的cache属性为
    true时,在smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。
      

  5.   

    你看看那个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的控制,它不会每次都进行编译,只是当数据改变时,才进行编译。
      

  6.   

    smarty的缓存是用硬盘缓存,不是内存
      

  7.   

    smarty包含模板部分和cache部分
    template_c放的是编译后的模板,
    cache目录才是存放cache的页面的地方.模板改变会导致重编译模板,
    cache是否重新生成,受程序或时间控制.
      

  8.   

    不完全是.
    静态页面是直接生成html文件
    smarty的cache还是php文件去读取的,只是缓存了模板执行的结果.
      

  9.   

    楼上的,你的意思是smarty 不是直接生成html静态页面文件, smarty的cache还是php文件去读取的,只是缓存了模板执行的结果.
      

  10.   

    “smarty 不是直接生成html静态页面文件, smarty的cache还是php文件去读取的,只是缓存了模板执行的结果”
    是的,是这样的!
    “smarty会进行编译,这会大大降低效率,所以很多人写BBS不用它。”
    这是错误的观点!
    smarty编译的是模板文件:将模板文件编译成php、html混合编码的php文件
    一经编译就不会改变,除非又对模板进行了编辑
    BBS只用内容频繁变化,但格式是不变的
      

  11.   

    简单的说吧,smarty开启静态缓存时,是会生成html静态页面,此时可以不执行任何逻辑,只要首先判断是否有缓存生成,有的话直接输出,然后直接停止脚本,这样效率是非常高的,相当于直接打开静态页面,不开启静态缓存时,那就会生成模板编译文件,把所有smarty标签转换成echo变量的形式,并不能提高任何效率,但也不会增加太多额外的执行时间,“smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定smarty的cache属性为true时,在smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。”