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时间戳使用实例代码
Jun 07 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
Feb 16 PHP
php session和cookie使用说明
Apr 07 PHP
php array_unique之后json_encode需要注意
Jan 02 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
Jun 20 PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
Dec 31 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
Oct 29 PHP
php实现的mysqldb读写分离操作类示例
Feb 07 PHP
详解php与ethereum客户端交互
Apr 28 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 PHP
php 中phar包的使用教程详解
Oct 26 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基础知识回顾
2012/08/16 PHP
PHP整合PayPal支付
2015/06/11 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
php短信接口代码
2016/05/13 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
vue-ajax小封装实例
2017/09/18 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
简介Django框架中可使用的各类缓存
2015/07/23 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
Python打印输出数组中全部元素
2018/03/13 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
python 的topk算法实例
2020/04/02 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
特罗佩亚包官方网站:Tropea
2017/01/03 全球购物
联想中国官方商城:Lenovo China
2017/10/18 全球购物
前台领班岗位职责
2013/12/04 职场文书
公司企业表扬信
2014/01/11 职场文书
工程质量月活动方案
2014/02/19 职场文书
2014年个人教学工作总结
2014/12/09 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
nginx配置虚拟主机的详细步骤
2021/07/21 Servers
Redis三种集群模式详解
2021/10/05 Redis