OB缓存是什么?以及OB缓存的运用场景

本文深入探讨PHP中OB缓存的运行机制,包括ob_start()的开启、ob_get_contents()的数据获取、ob_clean()的缓存清理等功能,以及如何通过ob缓冲减少数据库访问,优化电商项目帮助中心和商品详情页的加载速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.ob缓存运行方式


2.注意:在程序中如果开启ob_start(),所有的echo输出都会保存到ob缓存中,可以使用ob系列函数进行操作,如果没有,默认情况下,在程序执行结束,会把缓存中的数据发送给浏览器,如果,你使用ob_clean()类似的函数,会情况缓存中的内容,那么就不用有数据发送给浏览器

ob_start() 开启

ob_get_contents()  获取缓存中的数据

ob_clean()  清空缓存中的数据

ob_end() 关闭ob缓存

ob_end_clean() 清空缓存并关闭ob缓存

ob_flush()  刷新缓冲区【就是把ob缓存中的内容放到程序缓存中,缓存中内容就是空了,默认是在程序执行完后再放到程序缓存中,用此函数可以在程序执行时任意时候放到程序缓存中】

flush() 把程序缓存内容推送到浏览器【一些版本的 Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面,所以必须发送一些额外的空格来让这些浏览器显示页面内容。】

 

说的简单点:默认情况下,php会把输出的内容放到【程序缓存】中,待程序跑完,把【程序缓存】中的东西全部抛到浏览器中;现在使用ob缓存,开启后,所有的输出都会放到【ob缓存】中,头信息(header)等这些依旧存放到【程序缓存】中,待程序跑完,【ob缓存】中的内容会被放到【程序缓存】内容后面,再送到浏览器。ob_flush()是把【ob缓存】中的内容放到【程序缓存】中,之前只有待程序跑完才会把【ob缓存】内容放到【程序缓存】中,现在用ob_flush()就可以在任意时候送到【程序缓存】中;flush()函数的作用是把【程序缓存】中的数据抛到浏览器中;
总结:ob_flush()把ob缓存中的内容放到程序缓存
flush()是把程序缓存中的内容送到浏览器缓存中
 

我的电商项目的帮助中心、商品的详情页面都使用到了ob缓冲,因为帮助中心和商品详情的内容都是一些我们短期不需要进行修改的内容,当时我首先使用ob_start()方法打开我们的ob缓冲,将使用ob_get_contents()或者ob_flush() 方法获取我们ob缓冲页面的一些内容,当我们的缓冲中没有我们想要的内容的时候,会访问我们的数据库,将会从数据库中获取到我们需要的值,然后进行判断,会先将数据库的这些内容添加到我们缓冲中,也是为了在下次访问的时候,免去我们访问数据库,我们也可以给他添加一个缓存的有效时间,在这个时间内,用户查找就不会去访问数据库,在缓存过期后在再去访问数据库。这种情况下我们可以减少数据库的访问及数据库的压力,最后我们会使用ob_end()的方法将我们使用的ob缓冲进行关闭,我们使用它的原因就是运用了它的一个优势,减轻数据库的压力,减少对数据库的访问情况。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值