熟悉ECSHOP的老站长们都知道,ECSHOP是有缓存机制的。
* P1 g, U1 P4 R& r% g5 B- O @/ X6 B0 p" ]
ECSHOP的缓存机制从一定程度上可以减少ECSHOP反复读取数据库的几率,从而一定程度上降低服务器负担,提高访问速度。
7 S( O; Q$ `, J. y% ?6 v但是启用缓存机制,对一些新手站长也有不利的地方。我就遇到很多新手站长经常问,我明明修改了什么什么,为什么前台就没变化呢,这就是缓存在作怪,一般到后台清除缓存就可以了。# [7 y# p! m% n& A# U7 q* a# |* ?$ h
* a- V7 s7 O$ t; X" ]
鉴于上述原因,有一些站长就在想能不能“禁用ECSHOP缓存,关闭ECSHOP缓存”呢?答案是肯定的。
2 `( ~) T1 h7 z3 y6 i下面就来讲一讲“如何禁用ECSHOP缓存,如何关闭ECSHOP缓存?”
M0 A9 u" Y" P# V- a7 [
! ^$ n8 N. d/ P5 o" U5 ZECSHOP的缓存分两种,一种是SMARTY的页面缓存;另一种是SQL查询结果的缓存。% B9 Y/ |1 c/ k9 U( ` w
这两种缓存都是保存在templates/caches/文件夹下。
4 Z1 E9 @( g* |$ z) i6 ?6 @" M2 \8 B) ]/ ?只要我们分别关闭这两个缓存,就可以完全禁用ECSHOP的缓存。
5 g# r! t% A% j) R! R' T( Y U当然你也可以根据自己的需要关闭其中某一个。 1、关闭SMARTY的缓存:
5 T, L# i& u! l: K3 }6 H 打开includes/cls_template.php,找到下面一段+ D2 k8 y4 [8 _3 k g3 G
9 w C! c& L% N% k if (file_put_contents($hash_dir . '/' . $cachename . '.php', '<?php exit;?>' . $data . $out, LOCK_EX) === false): _& ~8 |, r& p0 ?) V& D
{
+ q1 J3 Z, j0 C2 P0 s6 u- J) h2 k% o trigger_error('can\'t write:' . $hash_dir . '/' . $cachename . '.php'); j G, p* d% [1 b8 G9 k6 Y
} |
" s8 U- H- Y$ l) S, u. N; h 将这一部分注释掉即可,改成; g3 f: O9 L" f8 U* m+ g
9 T1 Q+ ~5 W$ ^' V /*
; ~+ m6 ], O5 b! aif (file_put_contents($hash_dir . '/' . $cachename . '.php', '<?php exit;?>' . $data . $out, LOCK_EX) === false)
0 L# C6 v, o/ Z% A{
& b7 a, R% B5 w trigger_error('can\'t write:' . $hash_dir . '/' . $cachename . '.php');$ U# I% `: ?) T- F
}/ ]& ^& C- u ]& N( Z x$ |. m
*/ | 5 ], A+ e0 r/ ?5 o& d, h
2、关闭SQL查询结果缓存. Y7 ?; c* o* |1 ~
+ q, n1 Z. B3 P# F 打开includes/cls_mysql.php # E; E, K& Z. d' L
找到/ i( M. t& N$ d# b
var $max_cache_time=3600;//最大的缓存时间,以秒为单位
' v6 g; {8 G2 b) P 改为$ w6 D$ R4 K4 y
var $max_cache_time=0;//最大的缓存时间,以秒为单位
2 o t1 n& f/ f4 l1 G1 Q W) Z/ g/ {) w1 C7 @& \$ s. d& U4 I' F N
: O2 z6 `0 C' w b0 _& R. T2 o
经过上面修改后,就已经将ECSHOP的页面缓存和数据查询缓存都禁用了,这样当你做了任何修改后,前台都能马上体现出最新的变化,但是对服务器的压力会比禁用缓存之前稍微大那么一点。; N: V2 }# z8 I( `
" K+ ~, g: ^# J! @+ G T) N+ z各有利弊,自己取舍吧。 / V3 Y6 }' i" e! s7 m$ Q' w
|