smarty缓存问题

谁能跟我讲下smarty缓存原理   什么时候生成 什么时候用的  看了1天的百度 解析标签是弄懂了 但缓存还是晕

--------解决方案--------
smarty 的缓存被设计成了后台服务形式
使用时只要打开 smarty::caching 开关即可,余下的工作都由他自动完成
至于他是如何实现的,至少在目前阶段不需要你去知道
--------解决方案--------
引用 1 楼 xuzuning 的回复:

smarty 的缓存被设计成了后台服务形式
使用时只要打开 smarty::caching 开关即可,余下的工作都由他自动完成
至于他是如何实现的,至少在目前阶段不需要你去知道

。。。。。。。。。这个要知道了 这样看源码轻松点 不然累死

--------解决方案--------
别开玩笑了!
缓存只是附加的功能,也就十数行代码
与阅读源码无关

况且你都不会用,看源码只会越看越糊涂

--------解决方案--------
建议看看PHP100的视频,SMARTY这章节的,不错
--------解决方案--------
引用 3 楼 xuzuning 的回复:

别开玩笑了!
缓存只是附加的功能,也就十数行代码
与阅读源码无关

况且你都不会用,看源码只会越看越糊涂

引用 3 楼 xuzuning 的回复:

别开玩笑了!
缓存只是附加的功能,也就十数行代码
与阅读源码无关

况且你都不会用,看源码只会越看越糊涂

.................

--------解决方案--------
smarty缓存应该包括三种方式吧,第一种是Insert缓存,就是一般情况下用来缓存一小段数据像日期什么的,另外就是Block缓存,用来做局部缓存,再一种就是整个页面的静态缓存。

至于实现原理的话我觉得翻看源码也不一定看的出来,因为它内部嵌套的蛮杂,我看了一天也没看出个头绪,最后只能按着自己的理解然后知晓了如何合理的运用上面的三种缓存之后就没再管过了。

另外就是如果不是Smarty3的话我个人认为Smarty缓存中存在一个Bug,我在自己的QQ空间中有记录,可惜你看不到。。。。。。

--------解决方案--------
看源码只会越看越糊涂
--------解决方案--------
编译的时机
用户访问的是php页面
  1,当编译文件不存在的时候产生

2,当文件发送改变的时候
开启缓存
$sm3->caching=true;//默认是关闭
  $sm3->setCacheDir();//设置目录

$sm3->cache_lifetime=1000; //默认是3600
缓存的注意事项
    一个模版有且只有一个缓存文件
    全局缓存

一旦开启所有页面都将会缓存;
    局部缓存
       1,针对同模版不同内容缓存
       1,针对同模版不同区域缓存

缓存的注意事项
一个模版有且只有一个缓存文件
全局缓存
一旦开启所有页面都将会缓存;
局部缓存
1,针对同模版不同内容缓存
设置一个可变的cacheID
1,针对同模版不同区域缓存
如果你不想模版的变量缓存只需要{$foo nocache}
如果有大块区域不需要缓存可以设置
{nocache} code。。。。{/nocache}

smarty缓存问题

文章来源自:IT界

时间: 2024-10-14 23:34:21

smarty缓存问题的相关文章

smarty缓存

smarty缓存 实际上是将解析完的数据保存成一个静态的网页 //静态缓存 //使访问更加快速,减少对数据库的操作量,提示用户体验 减小服务器压力//原理:PHP文件执行完之后,将解析完的数据保存成一个静态的网页 再次访问时 直接访问静态网页 无需再次访问数据库//缺点:不能实时的跟数据库同步 在缓存设定时间内 静态网页无法更改 //适用范围限于一些小程序 对时间精度要求较高的 例如 抢购 无法满足 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.

全面剖析Smarty缓存机制一[三种缓存方式]

今天主要全面总结下Smarty模板引擎中强大的缓存机制,缓存机制有效减少了系统对服务器的压力,而这也是很多开发者喜欢Smarty的原因之一,由于篇幅较大,便于博友阅读,这篇文章将剖析Smarty缓存的几种方式,下篇文章着重讲解下设置缓存及清除缓存的技巧方法(其中包含缓存集合方法). 一.Smarty缓存的几种方式缓存机制中,分为全局缓存.部分缓存.局部缓存三种方式,后面会一一讲述,下面是缓存设置前,Smarty类方法基本目录设置如下:$smarty->Smarty();$smarty->tem

全面剖析Smarty缓存机制二[清除缓存方法]

前段时间,写了一篇 Smaryt缓存机制的几种缓存方式 ,详细介绍了三种缓存方式:全局缓存.部分缓存.局部缓存,以及通过is_cache()判断是否存在缓存来进行缓存生成.本来这篇早该完成,由于时间关系推到今天,还好思绪没有忘掉,闲话不多说,今天主要讲解Smarty缓存机制中如何清除缓存以及缓存集合的使用技巧,下面步入正题. 一.普通清除缓存方法总所周知,当你看了上一篇文章,会知道通过如下方法,对Smarty的缓存进行清除:代码示例:$smarty->clear_cache("index.

命名空间namespace、smarty使用(视图分离,MVC)、smarty模板语法、smarty缓存、MVC模式

一.命名空间:namespace 命名空间 可以理解为逻辑上的使用,为了防止重名 namespace :关键字 加载:require_once();//加载一次 include_once() 申明命名空间注意:名称空间一定是在最顶部 在他上面不能有任何内容,名称空间申明不能写在类的内部 use App\Stu; 引入,导入 名称空间\引入类名 as:取别名 二.smarty使用 smarty是一个使用php写出来的模板引擎,拥有独立简单的模板语法,它实现了逻辑代码与模板的分离,把原本HTML与P

PHP smarty缓存

test.php <?php //定义该页面缓存文件存放的路径 $filename = "../cache/cachetest.html"; //定义缓存有效期 $cachetime = 5; //判断缓存文件是否存在 if(!file_exists($filename) || filemtime($filename)+$cachetime<time()) { //开启内存缓存 ob_start(); include("../init.inc.php")

smarty缓存控制

第一步初始化配置文件中设置 如果当前访问的模板有缓存就不需要连接数据库那些代码了,如果要模板局部不缓存,要写在iscache外,模板中用{nocache}

PHP语言 -- Smarty缓存

include("init.inc.php"); $file = "./cache/newtesta.html"; //当前页面对应的缓存页面 $cachetime = 10; //设置时间是10秒 if(!file_exists($file)||(filemtime($file)+$cachetime<time())) //创建时间+缓存默认时间小于当前时间时 重新加载 { ob_start(); //开启内存 include("DBDA.php&

夺命雷公狗---Smarty NO:24 缓存控制技术1

什么是缓存技术 IE缓存:就是把请求的数据放入IE等浏览器中(客户端缓存) HTML+CSS+JS+IMG Smarty缓存:服务器端缓存 2.服务器缓存应用 1)减少服务器I/O 2)减少数据库服务器压力 3)减少服务器访问时间,加快反应速度 编译技术  <  缓存技术  <  静态技术(不方便管理) 3.Smarty缓存机制 $smarty->setCacheDir($cache_dir); //设置缓存目录(默认为cache) $smarty->caching=true; /

smarty的常用方法(二)の缓存

一.smarty缓存的应用(页面缓存) smarty缓存的用法: 1.开启 2.配置缓存的生命周期 3.判断是否缓存并是否从数据库取数据 4.输出 例如 //开启缓存$smarty->caching=true; //设置一个缓冲的生命周期 $smarty->cache_lifetime=3600; //设置缓存目录,用于存储缓存文件 $smarty->cache_dir='./cache'; if(!$smarty->isCached('01.html')){ echo '是否走了