ecshop不緩存
㈠ 如何禁用ECSHOP緩存,如何關閉ECSHOP緩存
您好,針對這個問題,希望能幫到您:
ECSHOP的緩存分兩種,一種是SMARTY的頁面緩存;另一種是sql查詢結果的緩存。
這兩種緩存都是保存在templates/caches/文件夾下。
只要我們分別關閉這兩個緩存,就可以完全禁用ECSHOP的緩存。
當然你也可以根據自己的需要關閉其中某一個。
1、關閉SMARTY的緩存:
打開includes/cls_template.php,找到下面一段
if(file_put_contents($hash_dir.'/'.$cachename.'.php','<?phpexit;?>'.$data.$out,LOCK_EX)===false)
{
trigger_error('can'twrite:'.$hash_dir.'/'.$cachename.'.php');
}
將這一部分注釋掉即可,改成
/*
if(file_put_contents($hash_dir.'/'.$cachename.'.php','<?phpexit;?>'.$data.$out,LOCK_EX)===false)
{
trigger_error('can'twrite:'.$hash_dir.'/'.$cachename.'.php');
}
*/
2、關閉SQL查詢結果緩存
打開includes/cls_mysql.php
找到
var$max_cache_time=3600;//最大的緩存時間,以秒為單位
改成
var$max_cache_time=0;//最大的緩存時間,以秒為單位
經過上面修改後,就已經將ECSHOP的頁面緩存和數據查詢緩存都禁用了,這樣當你做了任何修改後,前台都能馬上體現出最新的變化,但是對伺服器的壓力會比禁用緩存之前稍微大那麼一點。
希望能對您有所幫助,您也可以去ecshop模板堂的知識堂教程中查閱。
㈡ ecshop怎樣不用後台更新緩存同樣實現前台的刷新
1、首先修改資料庫結構
進入 ECShop後台 ==》 資料庫管理 ==》SQL查詢
輸入下面SQL語句,提交,注意要把表前綴更改為你自己的。我這里使用的是默認表前綴ecs_。
INSERT INTO `ecs_shop_config` VALUES (1021, 10, 'last_clear_time', 'text', '', '', '1332808200', 1);
註:1332808200這個是資料庫存儲的時間戳,對應於2012-03-27 08:30:00,到後台更新下緩存,它會自動變更的。
1021這個值也是可以改的,但是不建議少於1000 如果少於1000,可能對其他值會產生影響。
2、打開 includes/init.php 這個文件
在文件的最後添加如下代碼:
// 自動更新緩存
if (is_temps())
{
clear_all_files();
$sql="UPDATE ".$ecs->table('shop_config') ."SET value=".time()." WHERE code='"."last_clear_time'";
$db->query($sql);
}
function is_temps()
{
if(time()-$_CFG['last_clear_time']<3600)
{
return(false);
}
else
{
return(true);
}
}
上面代碼中的3600為自動更新間隔時間,單位為秒;
你可以根據自己網站的實際情況自行修改。