日期:2014-05-17  浏览次数:20781 次

关于Application.contents.Remove,请进来看看为啥不能用
添加保存到缓存没什么问题,我现在写了个清空释放所有缓存的页面,为啥会有问题呢,比如清空释放所有缓存的页面:
delcache.asp
-------------
Dim CacheobjStr
For Each CacheobjStr In Application.contents
  If CStr(Left(CacheobjStr, Len(cache_flag))) = CStr(cache_flag) Then
  Application.contents.Remove(CacheobjStr)
  End If
Next
--------------------
测试的时候,我已经保存了9个缓存,并且都能读取出来,可是当我运行上面程序的时候,每次只能清空2个或3个,也就是说我要不停的刷新delcache.asp页面好几次才能将9个缓存全部清空掉!为什么会这样呢?但是如果我将Application.contents.Remove(CacheobjStr)换成Application(CacheobjStr) = Empty就可以一次性都清空,但是我理解的是Empty只是将缓存清空但是还保留那个缓存名称,Remove是将整个对象都删除了,是这个意思吗?可为什么用Remove需要刷新好几次才能完全将9个缓存移除完毕呢?

------解决方案--------------------
在需要的地方,把条件输出来分析看看。有时候是多个空格什么的,就不能进入if模块。