ASP缓存类
来源:网络来源TAG:缓存浏览数: 次日期:2010-8-20评论:
条
折叠展开ASP/Visual Basic Code复制内容到剪贴板
- <%
- '**********************************************
- '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 '释放对象
- %>
- 详细出处参考:http://www.jb51.net/article/11146.htm
昨天新闻点击排行
一周新闻点击排行
当月新闻点击排行
评论表单加载中...