YII框架http缓存操作示例


Posted in PHP onApril 29, 2019

本文实例讲述了YII框架http缓存操作。分享给大家供大家参考,具体如下:

http禁止缓存原理

header('Expires: 0');
header('Last-Modified: '. gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cahe, must-revalidate');
//ie专用
header('Cache-Control: post-chedk=0, pre-check=0', false);
//for HTTP/1.0
header('Pragma: no-cache');

HttpcacheController.php

首先判断的是客户端lastModified,如果最后更新时间没有变化,就不会更新缓存,然后再判断etagSeed

<?php
/**
 * Created by PhpStorm.
 * Date: 2016/5/25
 * Time: 20:17
 * http 缓存
 */
namespace frontend\controllers;
use yii;
use yii\web\Controller;
class HttpcacheController extends Controller
{
  public function behaviors()//先于action执行,可以用来实现页面缓存
  {
    return [
      [
        'class'=>'yii\filters\HttpCache',//整个页面缓存
        'lastModified'=>function(){
          return filemtime('hw.txt');
          //return 22221231231231;//可以在每次修改数据时,记入缓存,从缓存读取
        },
        'etagSeed'=>function(){
          $fp = fopen('hw.txt','r');//hw.txt在web的根目录下
          $title = fgets($fp);//读取第一行
          fclose($fp);
          return $title;
          //return 'etagseed2123123';//内容
        },
      ]
    ];
  }
  public function actionIndex()
  {
    $content = file_get_contents('hw.txt');
    return $this->renderPartial("index",['new'=>$content]);
  }
}

httpcache/index.php

<?php
/**
 * Created by PhpStorm.
 * Date: 2016/5/25
 * Time: 20:19
 */
?>
<div>
  <div>这是http缓存页面</div>
  <p><?= $new;?></p>
</div>

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
ftp类(example.php)
Oct 09 PHP
社区(php&amp;&amp;mysql)一
Oct 09 PHP
介绍php设计模式中的工厂模式
Jun 12 PHP
php各种编码集详解和以及在什么情况下进行使用
Sep 11 PHP
php 判断字符串中是否包含html标签
Feb 17 PHP
CodeIgniter CLI模式简介
Jun 17 PHP
一个经典实用的PHP图像处理类分享
Nov 18 PHP
php中bind_param()函数用法分析
Mar 28 PHP
PHP机器学习库php-ml的简单测试和使用方法
Jul 14 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 PHP
PHP echo()函数讲解
Feb 15 PHP
使用PHP开发留言板功能
Nov 19 PHP
PHP常见的几种攻击方式实例小结
Apr 29 #PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 #PHP
详解提高使用Java反射的效率方法
Apr 29 #PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 #PHP
详解php中生成标准uuid(guid)的方法
Apr 28 #PHP
PHP写API输出的时用echo的原因详解
Apr 28 #PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 #PHP
You might like
浅析php单例模式
2014/11/25 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
jQuery使用手册之 事件处理
2007/03/24 Javascript
js直接编辑当前cookie的脚本
2008/09/14 Javascript
js实现倒计时(距离结束还有)示例代码
2013/07/24 Javascript
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
2016/05/25 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
Vue点击切换颜色的方法
2018/09/13 Javascript
vue最简单的前后端交互示例详解
2018/10/11 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
Python使用pymongo模块操作MongoDB的方法示例
2018/07/20 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
python requests指定出口ip的例子
2019/07/25 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
pytorch 修改预训练model实例
2020/01/18 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
护理专业个人求职简历的自我评价
2013/10/13 职场文书
教师专业自荐书范文
2014/02/10 职场文书
学生个人自我鉴定
2014/03/26 职场文书
个人简历自荐信
2014/06/26 职场文书
中学生社区服务活动报告
2015/02/05 职场文书