ASP实现缓存类无错版_ASP教程-查字典教程网
ASP实现缓存类无错版
ASP实现缓存类无错版
发布时间:2016-12-29 来源:查字典编辑
摘要:

<%

'**********************************************

'vbsCache类

'属性valid,是否可用,取值前判断

'属性name,cache名,新建对象后赋值

'方法add(值,到期时间),设置cache内容

'属性value,返回cache内容

'属性blempty,是否未设置值

'方法makeEmpty,释放内存,测试用

'方法equal(变量1),判断cache值是否和变量1相同

'方法expires(time),修改过期时间为time

'木鸟写的缓存类

'**********************************************

classCache

privateobj'cache内容

privateexpireTime'过期时间

privateexpireTimeName'过期时间application名

privatecacheName'cache内容application名

privatepath'uri

privatesubclass_initialize()

path=request.servervariables("url")

path=left(path,instrRev(path,"/"))

endsub

privatesubclass_terminate()

endsub

publicpropertygetblEmpty

'是否为空

ifisempty(obj)then

blEmpty=true

else

blEmpty=false

endif

endproperty

publicpropertygetvalid

'是否可用(过期)

ifisempty(obj)ornotisDate(expireTime)then

valid=false

elseifCDate(expireTime)<nowthen

valid=false

else

valid=true

endif

endproperty

publicpropertyletname(str)

'设置cache名

cacheName=str&path

obj=application(cacheName)

expireTimeName=str&"expires"&path

expireTime=application(expireTimeName)

endproperty

publicpropertyletexpires(tm)

'重设置过期时间

expireTime=tm

application.lock

application(expireTimeName)=expireTime

application.unlock

endproperty

publicsubadd(var,expire)

'赋值

ifisempty(var)ornotisDate(expire)then

exitsub

endif

obj=var

expireTime=expire

application.lock

application(cacheName)=obj

application(expireTimeName)=expireTime

application.unlock

endsub

publicpropertygetvalue

'取值

ifisempty(obj)ornotisDate(expireTime)then

value=null

elseifCDate(expireTime)<nowthen

value=null

else

value=obj

endif

endproperty

publicsubmakeEmpty()

'释放application

application.lock

application(cacheName)=empty

application(expireTimeName)=empty

application.unlock

obj=empty

expireTime=empty

endsub

publicfunctionequal(var2)

'比较

iftypename(obj)<>typename(var2)then

equal=false

elseiftypename(obj)="Object"then

ifobjisvar2then

equal=true

else

equal=false

endif

elseiftypename(obj)="Variant()"then

ifjoin(obj,"^")=join(var2,"^")then

equal=true

else

equal=false

endif

else

ifobj=var2then

equal=true

else

equal=false

endif

endif

endfunction

endclass

dimcontent,myCache

SetmyCache=newCache

myCache.name="sofoisndoffo"'定义缓存名称

ifmyCache.validthen'如果缓存有效

content=myCache.value'读取缓存内容

else

content="sosuo8.com测试"'大量内容,可以是非常耗时大量数据库查询记录集

myCache.addcontent,dateadd("n",1000,now)'将内容赋值给缓存,并设置缓存有效期是当前时间+1000分钟

endif

Response.Write(content)

'myCache.makeEmpty()

setclsCache=nothing'释放对象

%>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新ASP教程学习
    热门ASP教程学习
    编程开发子分类