通过设置session_cache_limiter来防止页面回退到上一页时页面丢失的情况

每次在项目中运用搜索功能搜索后,在搜索结果页进入其他页面,如果点击浏览器的退后按钮,返回上一页面,页面就崩溃了。

page-miss

而如果不用框架来写,而是我自己写一个简单的表单搜索,并返回上一页,却不会出现这样的情况。今天细心下来研究了下,发现页面的请求头对于缓存的设置是不一样的。项目中的每一个页面,都有禁止客户端缓存的设置,而自己写的php页面则没有。

cache-config

那么到底是框架在哪设置了禁止缓存呢,通过逐步排查,发现是框架的入口文件中,通过session_start()开启了session导致。原来,只要开启了session,页面默认就禁止了缓存。如果要开启客户端缓存可以在session_start前,加入这一句代码:

session_cache_limiter('private,must-revalidate');

这样,问题就解决了。

发表评论

邮箱地址不会被公开。 必填项已用*标注