zoukankan      html  css  js  c++  java
  • php—Smarty-缓存1(25)

    一、            缓存原理:

    IE:将资源文件保存至本地

    Smarty:将缓存保存到服务器

    编译      <            缓存      <            静态

    二、            为什么使用缓存技术

    1、提升网站访问速度

    2、减轻web服务器压力

    3、减轻数据库服务器压力

    三、            设置缓存

    1、在smarty中,设置缓存主要通过以下几行代码:

    l  $smarty->setCacheDir($cache_dir)

    设置缓存目录

    将来生成的缓存文件会自动放在这个目录下

    l  $smarty->caching=true

    开启缓存机制

    只要使用想缓存技术,必须在display方法调用之前开启缓存机制,(清除缓存不要开启)

    l  $smarty->cach_lifetime=3600

    设置缓存有效时间(生命周期),

    默认是3600秒(一小时),可以做适当调整

    2、代码部分:

    程序代码:

    模板代码:

    运行以上程序之后,我们发现在当前目录下,自动产生两个文件夹:

    其中templates_c和cache分别表示编译和缓存目录,并且它们是自动创建的

    但是强烈建议大家,不要过度依赖自动创建功能,因为在有些操作系统中,默认没有创建权限,所以建议我们在运行之前手动创建这两个目录

    3、观察这两个文件区别:

    编译文件:

    缓存文件:

    通过观察,我们发现,在编译文件中,关于模板变量的值是每次通过PHP程序动态读取的

    在缓存文件中,这两个变量的值是直接写到文件中的

    4、缓存是指针对模板的缓存

    我们可以尝试创建其它php程序,让这些程序再次显示上面这个模板,发现这些程序只会直接运行以上程序产生的缓存文件

    5、Smarty缓存工作原理:

    6、两个相关的属性

    $smarty->compile_check

    默认值为true,表示每次执行时,都会检查模板是否改变,如果改变,则重新读取,再生成编译和缓存文件。但是,一个项目上线之后,模板基本上是不会有改动的或不经常动的,每次都判断会影响系统性能,所以在项目上线之后,建议大家关闭此选项(设置为false)。

    $smarty->force_compile

    默认值是false,表示每次执行时,都会检查缓存是否过期,如果没有过期,则直接使用缓存文件的内容。但是,一个项目开发时,缓存会影响程序员对程序最直接的判断,会影响观察最新的数据。建议大家将此选项设置为true,表示每次运行时都重新生成编译和缓存文件。

    四、检查缓存

    $smarty->isCached(“tpl.tpl”)

    检查某个模板是否具有缓存文件

     

    实际应用:

    五、            清除缓存

    比如说,在一个商城系统里,这件商品价格是1000.00,现在商城打折,打七折。如果使用缓存,但商品价格仍然是原来的价格。这时需要我们将以前的缓存文件删除即可。

    l  $smarty->clearCache(“tpl.tpl”)

    清除某个模板的缓存文件

    l  $smarty->clearAllCache()

    清除所有模板的缓存文件

    一个商品信息的改变了,需要重新生成该商品的缓存文件

    一般情况下,修改数据,是需要重新生成缓存文件(要把原来的缓存文件删除).

  • 相关阅读:
    Maven 入门 (1)—— 安装
    centos下保留python2安装python3
    chrome各版本下载
    nginx 图片访问404 (使用location中使用 root,alias的区别)
    centos7无GUI运行selenium chromedriver 亲测可用!
    常用xpath选择器和css选择器总结
    在flask中使用swagger(flasgger使用方法及效果展示)
    判断回文字符串、回文链表、回文数(python实现)
    (9) MySQL主主复制架构使用方法
    (10) 如何MySQL读压力大的问题
  • 原文地址:https://www.cnblogs.com/zhenghongxin/p/4486972.html
Copyright © 2011-2022 走看看