账号通
    

账号  

密码  

2121

查看

2

回复
主题:科讯内容管理系统中缓存类的一个错误 [收藏主题]  
jiahai 当前离线

1

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:212 分
登录次数:4 次
注册时间:2007/1/14
最后登录:2007/1/14
jiahai 发表于:2007/1/14 0:32:00   | 只看该作者 查看该作者主题 楼主 

KS_CommonCls.asp文件的缓存类部分代码:

  Property Get valid()
  If IsEmpty(cache) Or (Not IsDate(expireTime)) Then
  vaild = False
  Else
  valid = True
  End If
  End Property
  
  Property Get value()
  If IsEmpty(cache) Or (Not IsDate(expireTime)) Then
  value = Null
  ElseIf CDate(expireTime) < Now Then
  value = Null
  Else
  value = cache
  End If
  End Property

Property Get valid() 是判断缓存是否有效。

Property Get value()取缓存值

当缓存时间过后,Property Get valid() 返回值为:True;而 Get value()返回值为NULL。这样就会造成, valid()为TRUE时,而value为空 。

代码作如下修改即可

  Property Get valid()
  If IsEmpty(cache) Or (Not IsDate(expireTime)) Then
  vaild = False
  ElseIf CDate(expireTime) < Now Then  '与Get value()相对应的判断,保持一致
  vaild = False
  Else
  valid = True
  End If
  End Property
  
  Property Get value()
  If IsEmpty(cache) Or (Not IsDate(expireTime)) Then
  value = Null
  ElseIf CDate(expireTime) < Now Then
  value = Null
  Else
  value = cache
  End If
  End Property

不知小弟我讲的是否有理,也不知其它朋友使用过程是否出现这个问题。我是在写别的程序中采用这个缓存类发现这个问题的。


[此贴子已经被作者于2007-1-14 8:24:18编辑过]

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
好好 当前离线

300

主题

0

广播

0

粉丝
添加关注
级别:三年级

用户积分:1340 分
登录次数:50 次
注册时间:2007/1/8
最后登录:2008/12/29
好好 发表于:2007/1/14 9:22:00   | 只看该作者 查看该作者主题 沙发 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
mm 当前离线

1223

主题

0

广播

1

粉丝
添加关注
级别:九年级

用户积分:5702 分
登录次数:423 次
注册时间:2006/5/6
最后登录:2008/3/4
mm 发表于:2007/1/14 8:13:00   | 只看该作者 查看该作者主题 藤椅 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.07813秒 powered by KesionCMS 9.0