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为自动更新间隔时间,单位为秒;
你可以根据自己网站的实际情况自行修改。