現在開發的項目是用tp3.1版本的,在開發過程中我們常常會遇到頁面緩存的問題(特別是html的緩存);刷新后還是舊版的數,再刷新下還是舊版數據,慢慢的開始懷疑人生了,哈哈;所以在開發過程中我們又必要每次及時清除緩存。
清除緩存的方法大概有3種(都是實際經歷總結):
第一:在項目的配置文件config.php里加入下面兩行代碼就能避免緩存問題
1
2
|
'TMPL_CACHE_ON' => false,//禁止模板編譯緩存 'HTML_CACHE_ON' => false,//禁止靜態緩存 |
這兩行代碼在這里我就不解釋啦;
第二:TP框架的緩存目錄存放在文件夾public_html\App\Runtime下,每次開發完成后手動刪除里面的所有文件
(感覺有點暴力和愚蠢),但這種方法最蠢,測試和線上環境如果沒有權限就刪除不了了;
第三:我自己寫的清除緩存類,我們可以在業務控制器同目錄下新建自己的"清除緩存"的類(核心思想就是利用TP框架自帶的緩存類來操作,TP框架的源代碼大家可以看下),通過url訪問的方式來清楚緩存,
代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
// +---------------------------------------------------------------------- // | Copyright (c) 2007-2009 // +---------------------------------------------------------------------- // $Id: ClearAction.class.php 668 2016-05-03 11:43:12Z chenhaibo $ /** +------------------------------------------------------------------------------ * 清除緩存 +------------------------------------------------------------------------------ * @author haibo <[email protected]> * @version $Id: ClearAction.class.php 668 2016-05-03 11:43:12Z chenhaibo $ +------------------------------------------------------------------------------ */ class ClearAction extends Action{ /** +---------------------------------------------------------- * 清除緩存 +---------------------------------------------------------- * @access public +---------------------------------------------------------- * @return void +---------------------------------------------------------- */ public function clearcache() { $_token = isset( $_GET [ 'token' ]) ? trim( $_GET [ 'token' ]) : '' ; $_operate = isset( $_GET [ 'operate' ]) ? trim( $_GET [ 'operate' ]) : '' ; $_option = array (); if ( $_operate == 'runtime' ) $_option [ 'temp' ] = RUNTIME_PATH; //各種緩存數據存放目錄 if ( $_operate == 'cache' ) $_option [ 'temp' ] = CACHE_PATH; if ( $_operate == 'data' ) $_option [ 'temp' ] = DATA_PATH; if ( $_operate == 'fields' ) $_option [ 'temp' ] = DATA_PATH. "/_fields" ; import( 'Think.Util.Cache.CacheFile' ); $CacheFile = new CacheFile( $_option ); $CacheFile ->clear(); echo 'success' ; } |
clear函數其實就是刪除緩存文件。
瀏覽器器地址欄輸入地址:
http://test.xxx.cn/Clear-clearcache?operate=fields //測試環境
http://www.xxx.cn/Clear-clearcache?operate=fields //正式環境
如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://chenhaibo0806999.iteye.com/blog/2345278