ASP缓存类无错版

这个博客介绍了ASP中一个自定义的Cache类,用于管理应用程序缓存。类提供了设置和获取缓存值、检查缓存有效性、设置过期时间等功能。通过示例代码展示了如何创建、使用和清理缓存,确保数据的高效加载和存储。
摘要由CSDN通过智能技术生成
<
' ********************************************** 
'
vbs Cache类
'
 属性valid,是否可用,取值前判断 
'
 属性name,cache名,新建对象后赋值 
'
 方法add(值,到期时间),设置cache内容 
'
 属性value,返回cache内容 
'
 属性blempty,是否未设置值 
'
 方法makeEmpty,释放内存,测试用 
'
 方法equal(变量1),判断cache值是否和变量1相同 
'
 方法expires(time),修改过期时间为time 
'
 木鸟写的缓存类
'
********************************************** 

class Cache 
private  obj  ' cache内容 
private  expireTime  ' 过期时间 
private  expireTimeName  ' 过期时间application名 
private  cacheName  ' cache内容application名 
private  path  ' uri 

private   sub  class_initialize() 
    path
= request.servervariables( " url "
    path
= left (path, instrRev (path, " / " )) 
end sub  

private   sub  class_terminate() 
end sub  

public   property   get  blEmpty 
    
' 是否为空 
     if   isempty (obj)  then  
        blEmpty
= true  
    
else  
        blEmpty
= false  
    
end   if  
end property  

public   property   get  valid 
    
' 是否可用(过期) 
     if   isempty (obj)  or   not   isDate (expireTime)  then  
        valid
= false  
    
elseif   CDate (expireTime) < now   then  
        valid
= false  
    
else  
        valid
= true  
    
end   if  
end property  

public   property   let  name(str) 
    
' 设置cache名 
    cacheName = str  &  path 
    obj
= application(cacheName) 
    expireTimeName
= str  &   " expires "   &  path 
    expireTime
= application(expireTimeName) 
end property  

public   property   let  expires(tm) 
    
' 重设置过期时间 
    expireTime = tm 
    application.lock 
    application(expireTimeName)
= expireTime 
    application.unlock 
end property  

public   sub  add(var,expire) 
    
' 赋值 
     if   isempty (var)  or   not   isDate (expire)  then  
        
exit   sub  
    
end   if  
    obj
= var 
    expireTime
= expire 
    application.lock 
    application(cacheName)
= obj 
    application(expireTimeName)
= expireTime 
    application.unlock 
end sub  

public   property   get  value 
    
' 取值 
     if   isempty (obj)  or   not   isDate (expireTime)  then  
        value
= null  
    
elseif   CDate (expireTime) < now   then  
        value
= null  
    
else  
        value
= obj 
    
end   if  
end property  

public   sub  makeEmpty() 
    
' 释放application 
    application.lock 
    application(cacheName)
= empty  
    application(expireTimeName)
= empty  
    application.unlock 
    obj
= empty  
    expireTime
= empty  
end sub  

public   function  equal(var2) 
    
' 比较 
     if   typename (obj) <> typename (var2)  then  
        equal
= false  
    
elseif   typename (obj) = " Object "   then  
        
if  obj  is  var2  then  
            equal
= true  
        
else  
            equal
= false  
        
end   if  
    
elseif   typename (obj) = " Variant() "   then  
        
if   join (obj, " ^ " ) = join (var2, " ^ " then  
            equal
= true  
        
else  
            equal
= false  
        
end   if  
    
else
        
if  obj = var2  then  
            equal
= true  
        
else  
            equal
= false  
        
end   if  
    
end   if  
end function  

end  class 

dim  content,myCache
Set  myCache  =   new  Cache
myCache.name
= " sofoisndoffo "   ' 定义缓存名称 
if  myCache.valid  then   ' 如果缓存有效
 content = myCache.value  ' 读取缓存内容
else
 content
= " sosuo8.com测试 "   ' 大量内容,可以是非常耗时大量数据库查询记录集
 myCache.add content, dateadd ( " n " , 1000 , now ' 将内容赋值给缓存,并设置缓存有效期是当前时间+1000分钟
end   if
Response.Write(content)
' myCache.makeEmpty()  
set  clsCache = nothing   ' 释放对象
% >
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值