ASP实现缓存类无错版

<% 
'********************************************** 
'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 '释放对象
%>

(0)

相关推荐

  • ASP实现缓存类无错版

    <%  '**********************************************  'vbs Cache类 ' 属性valid,是否可用,取值前判断  ' 属性name,cache名,新建对象后赋值  ' 方法add(值,到期时间),设置cache内容  ' 属性value,返回cache内容  ' 属性blempty,是否未设置值  ' 方法makeEmpty,释放内存,测试用  ' 方法equal(变量1),判断cache值是否和变量1相同  ' 方法expires(t

  • asp xml 缓存类

    复制代码 代码如下: <% Rem xml缓存类 '-------------------------------------------------------------------- '转载的时候请保留版权信息 '作者:╰⑥月の雨╮ '版本:ver1.0 '本类部分借鉴 walkmanxml数据缓存类,使用更为方便 欢迎各位交流进步 '-------------------------------------------------------------------- Class Xml

  • asp缓存类

    至于缓存的作用,我想我也不用再多说了,它的作用已经很明显,特别是对于信息量非常大或是全数据库页面的网站,他能很好地利用主机的内存资源,加速ASP的执行效率,减轻服务器的负担,而动网在这一方面做得是最突出的,像他现在的dvbbs7.1.0版,更是在缓存的利用上更上一层楼,前后台大多的操作都和缓存有关,而现在动网里用的也就是迷城浪子的缓存类,下面列出动网的三大高手写的ASP缓存类 木鸟写的 复制代码 代码如下: '*******************************************

  • ASP.NET缓存处理类实例

    本文实例讲述了ASP.NET缓存处理类.分享给大家供大家参考.具体如下: ASP.NET 缓存处理类. 用法: Just copy this code into a new class file (.cs) and add it to your ASP .NET website. One thing to keep in mind is that data stored in ASP .NET Cache can be accessible across all sessions. So whe

  • ASP.Net缓存总结及分析 分享

    1.页面缓存 要实现页面输出缓存,只要将一条 OutputCache 指令添加到页面即可. <%@ OutputCache CacheProfile=" " NoStore="True | False" Duration="#ofseconds" Shared="True | False" Location="Any | Client | Downstream | Server | None | Servera

  • 《解剖PetShop》之四:PetShop之ASP.NET缓存

    四 PetShop之ASP.NET缓存 如果对微型计算机硬件系统有足够的了解,那么我们对于Cache这个名词一定是耳熟能详的.在CPU以及主板的芯片中,都引入了这种名为高速缓冲存储器(Cache)的技术.因为Cache的存取速度比内存快,因而引入Cache能够有效的解决CPU与内存之间的速度不匹配问题.硬件系统可以利用Cache存储CPU访问概率高的那些数据,当CPU需要访问这些数据时,可以直接从Cache中读取,而不必访问存取速度相对较慢的内存,从而提高了CPU的工作效率.软件设计借鉴了硬件设

  • ASP.NET HttpRequest类用法

    HttpRequest 类的主要作用是读取客户端在 Web 请求期间发送的 HTTP 值. https://msdn.microsoft.com/zh-cn/library/system.web.httprequest(v=vs.110).aspx 1.获取客户端控件的值 From属性 <form id="form1" runat="server"> <div> <input id="Text1" name=&quo

  • 一个简洁实用的PHP缓存类完整实例

    本文完整描述了一个简洁实用的PHP缓存类,可用来检查缓存文件是否在设置更新时间之内.清除缓存文件.根据当前动态文件生成缓存文件名.连续创建目录.缓存文件输出静态等功能.对于采用PHP开发CMS系统来说,离不开对缓存的处理,合理利用好缓存可有效的提高程序执行效率. php缓存类文件完整代码如下: <?php /* * 缓存类 cache */ class cache { //缓存目录 var $cacheRoot = "./cache/"; //缓存更新时间秒数,0为不缓存 var

  • ASP经典分页类

    ASP经典分页类  出处 '===================================================================== 'XDOWNPAGE   ASP版本 '版本   1.00 'Code by  zykj2000 'Email:   zykj_2000@163.net 'BBS:   http://bbs.513soft.net '本程序可以免费使用.修改,希望我的程序能为您的工作带来方便 '但请保留以上请息 ' '程序特点 '本程序主要是对数

  • php实现的redis缓存类定义与使用方法示例

    本文实例讲述了php实现的redis缓存类定义与使用方法.分享给大家供大家参考,具体如下: php+redis缓存类 <?php class redisCache { /** * $host : redis服务器ip * $port : redis服务器端口 * $lifetime : 缓存文件有效期,单位为秒 * $cacheid : 缓存文件路径,包含文件名 */ private $host; private $port; private $lifetime; private $cachei

随机推荐