php设置页面缓存时间
session_cache_limiter()是通过用session来设置页面的缓存的,不是设置session的缓存的。
<?php /* 设置缓存限制为 “private” */ session_cache_limiter('private_no_expire'); /* 设置缓存过期时间为 30 分钟 */ session_cache_expire(30); /* 开始会话 */ session_start(); ?>
我之前就错了,稀里糊涂设置了这一项,我以为是设置session的过期时间的,然后,后来页面总是不刷新,必须手动点击刷新,不然就使用本地的缓存,倒是给我的服务器减小压力了,当初我还总是重启服务器,清理系统缓存,重装系统,总找不到问题。没想到是这一项的问题,差不多困扰了我3个月的时间。
后来又一次研究代码中的这几个配置才发现,是这一项的锅。
看官方说明:
缓存限制器定义了向客户端发送的 HTTP 响应头中的缓存控制策略。 客户端或者代理服务器通过检测这个响应头信息来 确定对于页面内容的缓存规则。 设置缓存限制器为 nocache 会禁止客户端或者代理服务器缓存内容, public 表示允许客户端或代理服务器缓存内容, private 表示允许客户端缓存, 但是不允许代理服务器缓存内容。
在 private 模式下, 包括 Mozilla 在内的一些浏览器可能无法正确处理 Expire 响应头, 通过使用 private_no_expire 模式可以解决这个问题:在这种模式下, 不会向客户端发送 Expire 响应头。
设置为 '' 可以关闭 自动发送缓存策略响应头的功能。
这个选项就是配置页面缓存的,好处是一些页面可以不用短时间内重复多次请求,还是有好处的。针对一些需要的页面可以设置。
比如类似静态的页面,可以不让它一段时间内频繁请求,使用本地缓存就行。或者内容很久不更新的那种,设置久一点就行。