位置: 编程技术 - 正文

简介PHP的Yii框架中缓存的一些高级用法(php的框架有哪些)

编辑:rootadmin

推荐整理分享简介PHP的Yii框架中缓存的一些高级用法(php的框架有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php框架的作用,php基本框架,php框架ci,php各大框架以及实现原理,php框架的作用,php框架介绍,php各大框架以及实现原理,php框架ci,内容如对您有帮助,希望把文章链接给更多的朋友!

页面缓存页面缓存指的是在服务器端缓存整个页面的内容。随后当同一个页面被请求时,内容将从缓存中取出,而不是重新生成。

页面缓存由 yiifiltersPageCache 类提供支持,该类是一个过滤器。它可以像这样在控制器类中使用:

上述代码表示页面缓存只在 index 操作时启用,页面内容最多被缓存 秒,会随着当前应用的语言更改而变化。如果文章总数发生变化则缓存的页面会失效。

如你所见,页面缓存和片段缓存极其相似。它们都支持 duration,dependencies,variations 和 enabled 配置选项。它们的主要区别是页面缓存是由过滤器实现,而片段缓存则是一个小部件。

你可以在使用页面缓存的同时,使用片段缓存和动态内容。

HTTP 缓存

除了服务器端缓存外, Web 应用还可以利用客户端缓存去节省相同页面内容的生成和传输时间。

通过配置 yiifiltersHttpCache 过滤器,控制器操作渲染的内容就能缓存在客户端。yiifiltersHttpCache 过滤器仅对 GET 和 HEAD 请求生效,它能为这些请求设置三种与缓存有关的 HTTP 头。

yiifiltersHttpCache::lastModified yiifiltersHttpCache::etagSeed yiifiltersHttpCache::cacheControlHeader

Last-Modified 头

Last-Modified 头使用时间戳标明页面自上次客户端缓存后是否被修改过。

通过配置 yiifiltersHttpCache::lastModified 属性向客户端发送 Last-Modified 头。该属性的值应该为 PHP callable 类型,返回的是页面修改时的 Unix 时间戳。该 callable 的参数和返回值应该如下:

以下是使用 Last-Modified 头的示例:

上述代码表明 HTTP 缓存只在 index 操作时启用。它会基于页面最后修改时间生成一个 Last-Modified HTTP 头。当浏览器第一次访问 index 页时,服务器将会生成页面并发送至客户端浏览器。之后客户端浏览器在页面没被修改期间访问该页,服务器将不会重新生成页面,浏览器会使用之前客户端缓存下来的内容。因此服务端渲染和内容传输都将省去。

简介PHP的Yii框架中缓存的一些高级用法(php的框架有哪些)

ETag 头

“Entity Tag”(实体标签,简称 ETag)使用一个哈希值表示页面内容。如果页面被修改过,哈希值也会随之改变。通过对比客户端的哈希值和服务器端生成的哈希值,浏览器就能判断页面是否被修改过,进而决定是否应该重新传输内容。

通过配置 yiifiltersHttpCache::etagSeed 属性向客户端发送 ETag 头。该属性的值应该为 PHP callable 类型,返回的是一段种子字符用来生成 ETag 哈希值。该 callable 的参数和返回值应该如下:

以下是使用 ETag 头的示例:

上述代码表明 HTTP 缓存只在 view 操作时启用。它会基于用户请求的标题和内容生成一个 ETag HTTP 头。当浏览器第一次访问 view 页时,服务器将会生成页面并发送至客户端浏览器。之后客户端浏览器标题和内容没被修改在期间访问该页,服务器将不会重新生成页面,浏览器会使用之前客户端缓存下来的内容。因此服务端渲染和内容传输都将省去。

ETag 相比 Last-Modified 能实现更复杂和更精确的缓存策略。例如,当站点切换到另一个主题时可以使 ETag 失效。

复杂的 Etag 生成种子可能会违背使用 HttpCache 的初衷而引起不必要的性能开销,因为响应每一次请求都需要重新计算 Etag。请试着找出一个最简单的表达式去触发 Etag 失效。

注意:为了遵循 RFC (HTTP 1.1 协议),如果同时配置了 ETag 和 Last-Modified 头,HttpCache 将会同时发送它们。并且如果客户端同时发送 If-None-Match 头和 If-Modified-Since 头,则只有前者会被接受。Cache-Control 头

Cache-Control 头指定了页面的常规缓存策略。可以通过配置 yiifiltersHttpCache::cacheControlHeader 属性发送相应的头信息。默认发送以下头:

会话缓存限制器

当页面使 session 时,PHP 将会按照 PHP.INI 中所设置的 session.cache_limiter 值自动发送一些缓存相关的 HTTP 头。这些 HTTP 头有可能会干扰你原本设置的 HttpCache 或让其失效。为了避免此问题,默认情况下 HttpCache 禁止自动发送这些头。想改变这一行为,可以配置 yiifiltersHttpCache::sessionCacheLimiter 属性。该属性接受一个字符串值,包括 public,private,private_no_expire,和 nocache。请参考 PHP 手册中的缓存限制器了解这些值的含义。

SEO 影响

搜索引擎趋向于遵循站点的缓存头。因为一些爬虫的抓取频率有限制,启用缓存头可以可以减少重复请求数量,增加爬虫抓取效率(译者:大意如此,但搜索引擎的排名规则不了解,好的缓存策略应该是可以为用户体验加分的)。

PHP的Yii框架中过滤器相关的使用总结 Yii过滤器简介过滤器是一段代码,可被配置在控制器动作执行之前或之后执行。例如,访问控制过滤器将被执行以确保在执行请求的动作之前用户已通

PHP的邮件群发系统phplist配置方法详细总结 本文实例讲述了PHP的邮件群发系统phplist配置方法。分享给大家供大家参考,具体如下:phplist是一个十分不错的邮件群发系统,让我们可以很方便地群发

phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法 本文实例讲述了phplist及phpmailer通过gmail发送邮件的配置方法。分享给大家供大家参考,具体如下:一般来说,只要你使用的不是gmail邮箱,那么利用phplis

标签: php的框架有哪些

本文链接地址:https://www.jiuchutong.com/biancheng/293317.html 转载请保留说明!

上一篇:深入解析PHP的Yii框架中的缓存功能(php解析接口)

下一篇:PHP的Yii框架中过滤器相关的使用总结(php框架实例)

  • 新成立的小规模纳税人怎么报印花税
  • 在途物资什么科目
  • 购买土地自建厂房,土地怎样摊销
  • 分摊房屋租赁费计入什么科目
  • 长期借款利息费用计算
  • 差旅费报销单是外来原始凭证吗
  • 外来建安企业的税收管理
  • ATM可以存款到对公账户吗?
  • 工矿区城镇土地使用税
  • 存货非正常损失的纳税筹划
  • 营改增后无形资产的出租和出售都属于增值税纳税范围
  • 新准则前期差错更正
  • 用白纸写的收据怎么入帐?
  • 差额内部收益率大于基准收益率
  • 转销无形资产的处置流程
  • 报企业所得税的利润总额怎么填
  • 建筑企业收到的商品怎么入账呢
  • 金税四期有什么变化
  • 资产基金科目如何选择
  • 安装设备用的材料计入什么科目
  • 外商投资企业补税政策
  • 汇算清缴后需要退税如何操作?
  • 未分配利润为什么不分配
  • 测试费怎么入账
  • 分红个人所得税怎么交
  • windows hello用不了怎么办
  • 关闭 ipv6
  • 公司出售车辆
  • 哪些收入要纳税
  • 增值税发票认证操作流程
  • 京东预付卡怎么做账
  • 酒店布草洗涤赔偿怎样折旧
  • 无偿受赠房产出售税费
  • pavsrv50.exe - pavsrv50进程管理信息
  • 工伤个人承担的费用
  • php实现发送邮件
  • 关于企业财务会计的说法正确的是
  • 盘点那些神级翻唱现场
  • ubuntu端口不能远程访问
  • 中小型科技企业所面临的普遍问题是资金缺乏
  • 差旅费的进项税额需要转出吗
  • 金蝶k3固定资产如何入账
  • 通过集中竞价交易减持
  • 基于python语言
  • 投资性房地产成本模式转公允模式差额
  • 购入车辆发生的费用
  • 服务业暂估成本怎样做账?
  • 转让金融商品应交增值税可以抵扣吗
  • 跨月普票发票怎么红冲
  • 诉讼费可以退回私账嘛
  • 以前年度的销售退回能否直接冲减销售收入
  • 产权转移数据印花税子目
  • 材料款已付,发票没来
  • 销售产品收到现款120元是什么制
  • 出口收到货款怎么做账
  • 超市卡发票可以作为费用吗
  • 事业单位私车公用如何处罚
  • mysqlbinlog -vvv
  • 计算机二级考试一年考几次
  • mysql的密码忘了该怎么办
  • Ubuntu14.4下Sublime Text 3无法输入中文解决方法
  • 怎么修复xp系统
  • centos dvd安装
  • win8换win10系统步骤
  • linux远程登录命令ssh
  • 明日之后白树高地怎么钓凤尾鱼
  • Linux Kernel 4.10第5个候选版本RTM版发布 2月12日发布正式版
  • centos zsh
  • win7系统如何将插孔设置为ac97前面板
  • Manjaro Linux 0.8.13发布下载 可将系统装入SD卡
  • 用于播放html5视频文件的正确
  • jquery示例
  • node 内存泄漏
  • jquery div innerhtml
  • 圆形图表分析怎么做
  • dos命令中删除文件命令有哪些
  • jquery插件是干什么的
  • 国家税务总局上海市电子税务局
  • 国家税务总局公告2013年第12号
  • 香港pcc价格
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设