ECSHOP的緩存存放在templates/caches/文章夾下,時間長了這個文件夾就會很是龐大,拖慢網站速度。還有不少狀況咱們不須要他的緩存。本文介紹禁用ECSHOP緩存的方法。php
ECSHOP的緩存有兩部分,一部分是SMARTY的頁面緩存;另外一部分是 SQL查詢結果的緩存。這兩部分都是保存在templates/caches/文件夾下。只要咱們分別關閉這兩個功能,就能夠徹底禁用ECSHOP的緩 存。固然你也能夠根據本身的須要關閉其中某一個。html
1.關閉SMARTY的緩存:
打開includes/cls_template.php,找到下面一段mysql
if (file_put_contents($this->cache_dir . ‘/’ . $cachename . ‘.php’, ‘<?php exit;?>’ . $data . $out) === false)
{
trigger_error(’can\’t write:’ . $this->cache_dir . ‘/’ . $cachename . ‘.php’);
}sql
將這一部分註釋掉便可,改爲緩存
/*
if (file_put_contents($this->cache_dir . ‘/’ . $cachename . ‘.php’, ‘<?php exit;?>’ . $data . $out) === false)
{
trigger_error(’can\’t write:’ . $this->cache_dir . ‘/’ . $cachename . ‘.php’);
}
*/安全
2.關閉SQL查詢結果緩存
打開includes/cls_mysql.php
找到
var $max_cache_time=3600;//最大的緩存時間,以秒爲單位
改成
var $max_cache_time=0;//最大的緩存時間,以秒爲單位服務器
--------------------------------------------session
如何限制或禁用ECShop緩存呢?按道理只要ftp登陸到主機空間服務器,清除「templates/caches」文件夾下的緩存文件,但比較安全穩妥的辦法是進入ecshop網店後臺點擊右上角「清除緩存」按鈕。仍是徹底禁用ecshop的緩存功能。函數
1、禁用ecshop部分數據表緩存。
ecshop 裏caches文件夾緩存文件包括sql查詢結果緩存和SMARTY模板頁面緩存。若是訪問網站的用戶一多,這些臨時的緩存數據都被保持在ECshop的 「templates/caches」文件夾下。數據緩存對提升網店速度有必定做用,但緩存文件一多也就過猶不及。有人說只對 favourable_activity,goods_activity這2個表禁用緩存便可。
打開include/init.php,找到post
PHP代碼
- $db->set_disable_cache_tables(array($ecs->table(’sessions’), $ecs->table(’sessions_data’), $ecs->table(’cart’)));
修改成
PHP代碼
- $db->set_disable_cache_tables(array($ecs->table(’sessions’), $ecs->table(’sessions_data’), $ecs->table(’cart’), $ecs->table(’favourable_activity’), $ecs->table(’goods_activity’)));
2、徹底禁用ecshop緩存
按期要登陸ecshop網店後臺清除緩存文件,對於懶人來講,這也挺嫌麻煩的。那乾脆徹底禁用ecshop緩存吧。參考小蟲的禁用echsop緩存文章,小蟲的具體代碼是2.6.0左右的版本。2.7的ecshop禁用緩存修改方法相似:
1. 用editplus打開include/cls_template.php,把下面代碼註釋掉:
2.用editplus打開include/cls_mysql.php,找到 max_cache_time = 300,把300改成0便可
3、templates/compiled下的文件是否能夠清空?
templates/compiled下的文件是模板編譯後文件,能夠清空。當用戶瀏覽網店後又會從新生成。templates文件夾下的主要是caches裏緩存文件太多,你能夠按期清空或徹底禁用ecshop緩存。
----------------------------------------------
關於清除緩存的建議!!
發現如今的清除緩存作的比較粗!和以前沒大變化啊!和2.0.5同樣. 只要後臺隨便一個修改的操做,整個緩存就都沒了!用的都是$smarty->clear_all_cache(); 缺點:若是我有10萬商品,:),並且都被瀏覽過,我後臺一個操做就要清楚15萬多緩存文件:)彷佛極限了點 只是舉例!!,但願ECSHOP更加完美而已! smarty裏面不是有這個函數麼? clear_cache(),我小修改了下,增長了能夠指定刪除某個目錄下的緩存,用處是:可方便的刪除商品的分類緩存! 2.0.5上我是這麼改的,另外在根目錄創建一個緩存目錄templates_caches,裏面創建article,article_cat,goods,goods_cat,4個文件夾分別放文章內容,文章列表,商品內容,商品列表的緩存 例子:對商品,文章部分的修改 前臺init.php和後臺init.php加入以下代碼,我爲了方便直接加在config.php裏面了
- //緩存目錄設置
- define('ECS_ROOT', substr(dirname(__FILE__), 0, -8));//先後臺數字固然不同了:)
- //文章緩存
- $cache_dir_article = ECS_ROOT.'./templates_caches/article';
- $cache_dir_article_cat = ECS_ROOT.'./templates_caches/article_cat';
- //商品緩存
- $cache_dir_goods = ECS_ROOT.'./templates_caches/goods';
- $cache_dir_goods_cat = ECS_ROOT.'./templates_caches/goods_cat';
複製代碼
前臺商品內容和分類緩存時間單獨設置長一些,如內容一個月,分類1天 修改後臺,商品單獨修改的地方只刪除這個商品內容的緩存 只要有修改操做就刪除商品分類緩存和首頁緩存!加入以下 $smarty->clear_cache(null, null, null, null, $cache_dir_goods_cat);//zouql:刪除商品目錄緩存,默認緩存時間 $smarty->clear_cache('goods.html', $goods_id, null, null, $cache_dir_goods);//zouql:刪除商品緩存,默認緩存時間 還有廣告管理等等等等等等等等地方要改! 前臺用戶發表評論後自動刪除本商品緩存等等.......... function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null, $cache_dir = null) { if (!isset($cache_dir)) $cache_dir = $this->cache_dir; if (!isset($compile_id)) $compile_id = $this->compile_id; if (!isset($tpl_file)) $compile_id = null; $_auto_id = $this->_get_auto_id($cache_id, $compile_id); if (!empty($this->cache_handler_func)) { return call_user_func_array($this->cache_handler_func, array('clear', &$this, &$dummy, $tpl_file, $cache_id, $compile_id, $exp_time)); } else { $_params = array('auto_base' => $cache_dir, 'auto_source' => $tpl_file, 'auto_id' => $_auto_id, 'exp_time' => $exp_time); require_once(SMARTY_CORE_DIR . 'core.rm_auto.php'); return smarty_core_rm_auto($_params, $this); } } |
---------------------------------------------
按期清除緩存頁面插件
軟件類型:國產軟件 受權方式:共享軟件 界面語言:簡體中文 軟件大小:未知 文件類型:.rar 運行環境:Win2003,WinXP,Win2000,Win9X 軟件等級:★★★★★ 發佈時間:2009-08-26 官方網址:http:// 演示網址:http:// 下載次數: 47
軟件介紹
利用ECSHOP的計劃與任務清除過多的緩存頁面文件
重要說明:
1.適用於utf-8編碼;
2.原下載包內languages的路徑有錯誤,正確的是:languages\zh_cn\cron\myclr.php
你們快出來列隊歡迎 wutao0808 ,
wutao0808 的文件經測試 沒有問題,不會破壞系統
我在此貼中作個備份,下面第一個爲樓主的文件,清楚緩存,但不清除模板的編譯 直接複製到商城的根目錄下便可
下面的這個文件是我稍作修改 其中作了註釋 ,默認爲清除所有文件(包括緩存和模板編譯 ),若是隻需清楚緩存文件,註釋掉
clear_all_files(); 改成 //clear_all_files();
將清除緩存的取消註釋 //clear_cache_files(); 改成 //clear_cache_files(); 便可