每次在项目中运用搜索功能搜索后,在搜索结果页进入其他页面,如果点击浏览器的退后按钮,返回上一页面,页面就崩溃了。
而如果不用框架来写,而是我自己写一个简单的表单搜索,并返回上一页,却不会出现这样的情况。今天细心下来研究了下,发现页面的请求头对于缓存的设置是不一样的。项目中的每一个页面,都有禁止客户端缓存的设置,而自己写的php页面则没有。
那么到底是框架在哪设置了禁止缓存呢,通过逐步排查,发现是框架的入口文件中,通过session_start()开启了session导致。原来,只要开启了session,页面默认就禁止了缓存。如果要开启客户端缓存可以在session_start前,加入这一句代码:
session_cache_limiter('private,must-revalidate');
这样,问题就解决了。