- <%
- '**********************************************
- '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 '释放对象
- %>
ASP实现缓存类无错版
2019-10-10 10:42asp代码网 ASP教程
ASP实现缓存类无错版
延伸 · 阅读
- 2021-10-20关于ASP网页无法打开的解决方案
- 2021-10-14让apache也支持asp环境的方法
- 2021-08-15asp取整数mod 有小数的就自动加1
- 2021-08-15asp与php中定时生成页面的思路与代码
- 2021-06-15php实现的redis缓存类定义与使用方法示例
- 2021-06-09Android图片加载的缓存类
精彩推荐
- ASP教程
asp 采集实战代码
最近实在是太流行采集了,本人是不喜欢采集的,但对采集的原理我却很有兴趣进行研究,拿到了网上采集常用函数,对其进行了一番研究,并实战,结果...
- ASP教程
asp之基于adodb.stream的文件操作类
asp之基于adodb.stream的文件操作类...
- ASP教程
asp 标记字符串中指定字符变色不区分大小写
今天遇到这种问题,单纯的使用replace函数不行,他会改变原有的字符串的大小写,在网上找到相关的代码,自己备份下...
- ASP教程
JScript中遍历Request表单参数集合的方法
这篇文章主要介绍了JScript中遍历Request表单参数集合的方法,本文以遍历Request.QueryString集合为例给出了实现代码,需要的朋友可以参考下...
- ASP教程
asp Access数据备份,还原,压缩类代码
asp Access数据备份,还原,压缩类实现代码,大家可以参考下。...
- ASP教程
asp+javascript实现404页的处理转换
asp+javascript实现404页的处理转换...
- ASP教程
ASP.NET 数据源
数据源 一个 data sourse 控件与数据绑定的控件相互作用,并隐藏了复杂的数据的联编过程。这些是提供数据给 data bound 控件的工具,并且支持如插入,删除...
- ASP教程
ASP常用函数:getpy()
ASP常用函数:getpy()...