码迷,mamicode.com
首页 > 其他好文 > 详细

关于yii的缓存的学习(学习自慕课网---与《YII框架》不得不说的的故事—高效篇)

时间:2015-08-17 17:30:46      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:yii   函数   框架   缓存   class   

1.类的延时加载和表的映射
第一张截图主要是实现了类的分别调用,不用再开头把所有的文件都加载了。这样放在if的语句里面,就能加载用到的类
技术分享
第二张图是实现了类的延时加载,主要是使用了spl_autoload_register 的函数只有当程序新建一个类的的时候,如果系统判断他不存在的话,就会通过那个函数去加载一次。yii也是使用的这个思想。
技术分享
第三第四张图,是yii使用类的延时加载的方式,在yii的入口文件index.php那里,加载yii.php文件,然后yii.php文件里面也是使用了spl_autoload_register 的函数。
技术分享
技术分享

第五张图,这图是yii映射表的使用方式,就是给指定的类附一个绝对路径,这样就能调用到她了,不过这个适用于经常使用的类。
技术分享

2.组件的延时加载
第一张图是组件的加载流程,先通过$app实例化组件,然后再控制器中调用。而在yii中。只有当控制器里面需要组件的时候,通过这个方式来加载主键,然后yii这个方法会去调用__get()的方法来对指定的组件进行加载,通过这种方式进行组件的延时加载
技术分享
技术分享

3.缓存的增删改查
下面的那几个方法就能实现数据的增删改查了,
PS:如果是重复增加key值的话是不会有效果的
技术分享

4.设置数据缓存的有效期和缓存的依赖性
设置缓存的时间的话,就直接在函数后面加上一个时间就好了
技术分享
依赖性分三种,一个是文件的依赖性,一个是表达式的依赖性,一个是DB的依赖性,相当于文件或者表达式或者db等东西被修改过后,这个缓存就不存在了,如果这时候还调用那个key值的缓存信息的话,就会返回false了。
技术分享
技术分享
技术分享

5.片段缓存
片段缓存实通过加视图层里面加上一个 $this->begincache(‘data’);这样的方式,然后将data的div里面的数据进行缓存。可以通过参数来设置缓存时间,缓存的依赖性和进行缓存的开关
技术分享

技术分享

技术分享

技术分享

6.页面缓存
页面缓存的话,使用behavior 可以在调用index方法前执行 然后使用配置文件告诉浏览器要使用页面缓存。通话pagecache的东西来对页面进行缓存。

技术分享

技术分享

缓存的头部和没缓存的头部的比较
技术分享

7.http缓存
1) 304 表示没修改过 就不会重新传数据 就直接显示缓存的数据 通过last modified 和etag这两个标签来判断是否更改过。
技术分享
调用的是httpcache的方法
技术分享

2)
通过last-modified和etag这两个字段 来判断是否需要增加缓存 last-modified表示最后一次修改 etag是表示数据是否有修改.png
技术分享
先判断lastmodified 再判断etag 如果两个都不同的话就会重新调用了
技术分享

对于last modified和etag在http 头部协议里面的显示信息
技术分享
技术分享

3)在代码里面的实现
技术分享

使用etag和last modified的代码如下。
技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载。

关于yii的缓存的学习(学习自慕课网---与《YII框架》不得不说的的故事—高效篇)

标签:yii   函数   框架   缓存   class   

原文地址:http://blog.csdn.net/rodgexue/article/details/47725719

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!