Thinkphp 3.2中控制頁面不快取
[我的掘金通道](https://juejin.im/post/5b0666be6fb9a07ab459060d)
最近開發WAP網站時,最討厭的就是back鍵,會造成些麻煩事。不過,問題總有辦法解決。
有些頁面,點選back鍵回退會載入快取,這不是想要的,所以希望能夠控制該頁面不快取,每次請求都需要從伺服器獲取最新資料。
解決思路就是通過控制 HTTP 的Cache-control 頭
![image](http://upload-images.jianshu.io/upload_images/2376873-9430d2fe3abc1f43?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
可以看到,Thinkphp 3.2 預設的Cache-control 為 private
那是因為配置檔案中預設設定為 private
![image](http://upload-images.jianshu.io/upload_images/2376873-7f8fa48005716d81?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
頁面在渲染的時候將這個配置中的值設定為 Cache-control 頭
![image](http://upload-images.jianshu.io/upload_images/2376873-88a2fed7ee3bbac7?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
那根據以上資訊,一開始我只想到兩種解決辦法:
1、修改配置中的值 => 不現實,全域性修改了
2、改寫原始碼 => TP不可能這麼傻
最後的解決辦法是:在控制頁面不快取的方法中設定 `C('HTTP_CACHE_CONTROL',"no-store");`
![image](http://upload-images.jianshu.io/upload_images/2376873-7e4120004aaedadf?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
那麼順便再鞏固下 Cache-control 頭的一些引數設定:
具體參考 [MDN 的web docs](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Cache-Control)
>不積跬步無以至千里