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 相关文章推荐
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 PHP
php array_map array_multisort 高效处理多维数组排序
Jun 11 PHP
php中神奇的fastcgi_finish_request
May 02 PHP
探讨PHP中OO之静态关键字以及类常量的详解
Jun 07 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
windows7下php开发环境搭建图文教程
Jan 06 PHP
PHP获取一年中每个星期的开始和结束日期的方法
Feb 12 PHP
PHP模拟asp.net的StringBuilder类实现方法
Aug 08 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
Jul 12 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
Apr 17 PHP
PHP token验证生成原理实例分析
Jun 05 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 采集获取指定网址的内容
2010/01/05 PHP
PHP is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
php代码书写习惯优化小结
2013/06/20 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
JS面向对象编程 for Cookie
2010/09/19 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
JavaScript对IE操作的经典代码(推荐)
2014/03/10 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
Python基于递归实现电话号码映射功能示例
2018/04/13 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
2020/02/03 全球购物
学前教育教师求职自荐信
2013/09/22 职场文书
英语专业学子个人的自我评价
2013/10/02 职场文书
国防教育标语
2014/10/08 职场文书
2014年租房协议书范本
2014/10/30 职场文书
礼貌问候语大全
2015/11/10 职场文书
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript