熟悉ECSHOP的老站长们都知道,ECSHOP是有缓存机制的。
2 g; h; f, }5 S: f* V; v1 @8 d! w
ECSHOP的缓存机制从一定程度上可以减少ECSHOP反复读取数据库的几率,从而一定程度上降低服务器负担,提高访问速度。+ w6 w+ F# A6 P. I
但是启用缓存机制,对一些新手站长也有不利的地方。我就遇到很多新手站长经常问,我明明修改了什么什么,为什么前台就没变化呢,这就是缓存在作怪,一般到后台清除缓存就可以了。( L' b1 g" ?/ Z% {, I
8 Z) _$ u z- A( ~/ K7 T- A! a1 _" b鉴于上述原因,有一些站长就在想能不能“禁用ECSHOP缓存,关闭ECSHOP缓存”呢?答案是肯定的。/ V* x5 t8 J9 |+ e" H3 f0 V+ D
下面就来讲一讲“如何禁用ECSHOP缓存,如何关闭ECSHOP缓存?”
# r% e! v4 K- S( r: j
4 e7 k( U) `! w: k$ \% |! OECSHOP的缓存分两种,一种是SMARTY的页面缓存;另一种是SQL查询结果的缓存。; D( e$ A7 Z2 ]" A7 E
这两种缓存都是保存在templates/caches/文件夹下。
3 c. P% W0 ]+ D; z: H; A只要我们分别关闭这两个缓存,就可以完全禁用ECSHOP的缓存。8 n3 Q- G! N' f+ H+ O7 w
当然你也可以根据自己的需要关闭其中某一个。 1、关闭SMARTY的缓存:0 Y- T8 p( e+ X; u, w" ?7 O
打开includes/cls_template.php,找到下面一段
# [. G2 D+ V( _! g, f" j5 o k K+ j) u6 d! |& @" X/ ~* q& T5 ^
if (file_put_contents($hash_dir . '/' . $cachename . '.php', '<?php exit;?>' . $data . $out, LOCK_EX) === false)
4 s5 x4 @' M& z) j# ^& u{. f1 b. b! j9 ]1 c! s3 t( t
trigger_error('can\'t write:' . $hash_dir . '/' . $cachename . '.php');1 i# n: f t- T, c' _" M+ l
} |
6 Y* E# n# d) {5 [/ T& @ 将这一部分注释掉即可,改成
0 N; ^# S v0 `/ `- O. D. [( |! Z# Y+ f8 B
/*
( A; @/ h7 P+ I/ ]8 @5 X: m9 t+ Dif (file_put_contents($hash_dir . '/' . $cachename . '.php', '<?php exit;?>' . $data . $out, LOCK_EX) === false)
/ I. H- v* Z. R) t; f{& T0 q' c+ \" l- a+ w: S8 l' F
trigger_error('can\'t write:' . $hash_dir . '/' . $cachename . '.php');- F# i% ]3 i- t+ U- l# M
}: P! z8 D2 M% u6 E' |6 e
*/ |
8 s( P: ?* H3 u0 q/ D2、关闭SQL查询结果缓存2 }: R% O% h8 ~+ L% e
/ A. x+ U# t6 i* c/ H
打开includes/cls_mysql.php
t# W& M( m! A$ l4 `1 Z+ H9 u( F 找到
$ y- O J$ Y5 K6 d5 m! y6 ? var $max_cache_time=3600;//最大的缓存时间,以秒为单位
0 i: Y7 B7 w" _# x5 b/ z 改为& S1 E1 m0 c6 k6 c- Y9 t0 @
var $max_cache_time=0;//最大的缓存时间,以秒为单位, [: t3 L% Y! s9 n9 f
; {! K* e( Y, D3 j8 m/ K0 w6 H3 b7 y# I1 z
经过上面修改后,就已经将ECSHOP的页面缓存和数据查询缓存都禁用了,这样当你做了任何修改后,前台都能马上体现出最新的变化,但是对服务器的压力会比禁用缓存之前稍微大那么一点。
& K& c& ~) {5 S) E/ D3 k3 h. U
8 Z' o }( Y# _8 K) r各有利弊,自己取舍吧。 5 a5 t' ~& u) o0 E) ^
|