仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1360|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页设计手把手教你Smarty缓存手艺

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:32:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在学习PHP这六个月里,每看到一个优秀的php脚本,就会兴奋的手舞足蹈,嘴里还不停的说:太酷了,太酷了。呵呵,很幼稚吧,但这可能就是兴趣。      人人应当晓得缓存机制能能无效的加重网站的办事器压力,Smarty模板引擎的一大亮点就是为咱们供应了十分复杂的缓存操作,上面就让咱们进修一下。
    起首咱们要晓得Smarty缓存机制分为全局缓存,局部缓存,部分缓存三种,咱们逐一引见。
    1、全局缓存
    望文生义,全局缓存就是为全部网站的全体页面都生成缓存页面。
    起首咱们要操作smarty的设置装备摆设文件,开启缓存,指定缓存文件目次,并设置缓存的存活工夫
    $smarty->cache_dir = ‘./cache/’; //设置寄存缓存文件的文件夹
    $smarty->caching = 1;//开启缓存 0、FALSE代表封闭非0数字、TRUE代表开启
    $smarty->cache_lifetime = 3600//单元为秒(假如填写-1为永不外期)
    接上去咱们要去详细的php页面设置与之对应的详细缓存文件的名字
    $url=md5($_SERVER['REQUEST_URI']);//将以后页面的URL(包括?前面的一切参数)停止md5加密
    $smarty->display(‘list2.html’,$url);//设置缓存文件名
    需求注重的是:
    $smarty->display(‘与之对应的模板文件名’,'缓存文件名的增补局部’)这个办法。
    第二个参数不是必需的,假如不写的话,缓存文件名就是讲过加密处置的模板文件名。
    然而如许会碰着一个对照辣手的成绩:
    http://localhost/1.10/sm/list2.php?lan=1
    http://localhost/1.10/sm/list2.php?lan=2
    http://localhost/1.10/sm/list2.php?lan=3
    3个URL对应应当的分歧的内容,然而生成的缓存文件名都是list2.html加密后的了局。
    这就会招致用户想要查询的是分歧的内容,会见的倒是统一个缓存文件。
    所以建议加上一个帮助参数,将会见url(包括?前面的一切参数)md5加密是作者对照保举的一种。
    2、局部缓存
    起首懂得甚么叫局部缓存,其实就是指定一些文件生成缓存文件,而非网站的全体文件。
    懂得了需求到达的后果,接上去咱们就来详细操作
    操作之前,咱们先要强调一个概念:
    局部缓存的本色实际上是局部不缓存,也就是说不是指定那些文件生成缓存,而是指定详细一些文件不生成缓存
    假定有3个文件:
    1.php //需求缓存
    2.php //需求缓存
    3.php //不需求缓存
    在1.php/2.php文件中仍是还是写上$smarty->display(‘与之对应的模板文件名’,’缓存文件名的增补局部’)这个办法。
    但在3.php中咱们要出格指明不需求生成缓存,详细的办法是:
    $smarty->clear_cache(‘与之对应的模板文件名’)//写在$smarty->display(‘与之对应的模板文件名’)之前仍是以后都可以
    固然$smarty->display(‘与之对应的模板文件名’)仍是要写,原本就不想生成缓存,第二个参数也就不需求了。
    $smarty->clear_cache()和$smarty->display()的参数必定要写成分歧的
    3、部分缓存
    起首让咱们懂得下部分缓存的意思,就是指定统一页面下的某些部分中央生成缓存。
    一样的在这里咱们也要把思绪反转一下。
    其实不是指定哪些部分生成缓存,而是哪些部分不生成缓存(这和局部缓存的操作思惟是相似的)。
    话不多说,先举一个实例
    1.php
    $time=time();
    $smarty->assign(‘time’,$lanmuarr);
    function insert_timeget()
    {
    return time();
    }
    $smarty->display(’1.html’);
    
    1.html
    {$time}
    //开启缓存后,反复刷新这个不会变
    {insert name=’timeget’}
    //开启缓存后,反复刷新这个会变
    看懂了这个例子咱们来注释下个中的道理
    在PHP中咱们只需界说了
    函数名为insert_自界说增补名的自界说函数,在个中前往的值,不需求assign()办法传递,就可以直接在模板页面中以{insert name=’自界说增补名’}的体例挪用,同时不会遭到缓存的影响,而及时刷新
    好了到这里咱们关于smarty的3中缓存体例就全体解说完了,有乐趣的伴侣可以本人实验下分歧的后果。
那么接下来,这就算学会啦?NO,NO,NO,还早呢,你至尽还没碰过OOP之类的吧?模板呢?
蒙在股里 该用户已被删除
沙发
发表于 2015-2-4 01:42:41 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
兰色精灵 该用户已被删除
板凳
发表于 2015-2-9 09:23:51 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
再现理想 该用户已被删除
地板
发表于 2015-2-27 05:10:19 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
不帅 该用户已被删除
5#
发表于 2015-2-27 13:27:28 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
分手快乐 该用户已被删除
6#
发表于 2015-3-7 04:56:32 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-14 10:46:44 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
小女巫 该用户已被删除
8#
发表于 2015-3-21 02:19:05 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
老尸 该用户已被删除
9#
发表于 2015-4-10 10:06:53 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
深爱那片海 该用户已被删除
10#
发表于 2015-4-14 19:47:55 | 只看该作者
实践是检验自己会不会的真理。
若相依 该用户已被删除
11#
 楼主| 发表于 2015-4-17 17:36:07 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
变相怪杰 该用户已被删除
12#
发表于 2015-4-22 07:18:46 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
小魔女 该用户已被删除
13#
发表于 2015-4-27 10:19:16 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
只想知道 该用户已被删除
14#
发表于 2015-6-7 06:09:36 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
海妖 该用户已被删除
15#
发表于 2015-7-3 01:07:04 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
admin 该用户已被删除
16#
发表于 2015-7-7 00:21:56 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
若天明 该用户已被删除
17#
发表于 2015-7-7 22:08:25 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
莫相离 该用户已被删除
18#
发表于 2015-7-10 07:19:58 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
柔情似水 该用户已被删除
19#
发表于 2015-7-11 19:55:21 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
山那边是海 该用户已被删除
20#
发表于 2015-7-12 11:53:37 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-29 06:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表