- <%
- '**********************************************
- '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实现缓存类无错版
延伸 · 阅读
- 2019-10-10asp下比较全面的获取IP地址的代码
- 2019-10-10asp下实现批量插入数据的方法
- 2019-10-10asp下用ADODB.Stream代替FSO读取文本文件
- 2019-10-10asp之基于adodb.stream的文件操作类
- 2019-10-10asp 获取access系统表,查询等操作代码
- 2019-10-10asp之字符串函数示例
精彩推荐
- ASP教程
Asp操作Xml的精炼类,含示例代码
自己写的一个Asp操作Xml的精炼类,有示例哦...
- ASP教程
asp下实现IP限制函数代码
asp下实现IP限制函数代码...
- ASP教程
服务器XMLHTTP(Server XMLHTTP in ASP)基础知识
几年很流行 Ajax,而 Ajax 的本质就是 XMLHttpRequest,是客户端 XMLHttpRequest 对象的使用。...
- ASP教程
asp最简单的生成验证码代码
前几天博客被发帖机发了很多垃圾评论,几十条那么多。做网站那么久没有试过这样的情况,都怪自己没有加验证码功能。...
- ASP教程
Asp下Access无法更新的解决方法
在windows+iis服务器上运行asp程序可能会出现数据库无法更新的情况,整理如下,需要的朋友可以参考下...
- ASP教程
asp 动态数组 提供Add、Insert、Remove、RemoveAt、Search等方法。
asp动态数组,提供Add、Insert、Remove、RemoveAt、Search等方法。可以在数组中存储对象不考虑效率问题...
- ASP教程
防ASP注入终极防范
其实SQL注入漏洞并不可怕,知道原理 + 耐心仔细,就可以彻底防范...
- ASP教程
asp下轻松实现将上传图片到数据库的代码
轻松实现将上传图片到数据库 很久就想自己写一写程序了,不过由于赖就不想写我,今天刚好有空,所以写了这个小小的程序很容易一看就知道的,不多说...