捌度空间 缓存类

捌度空间 缓存类代码

  

复制代码 代码如下:

  <%

  class Cache

  private obj            'cache内容

  private expireTime        '过期时间

  private expireTimeName    '过期时间application名

  private cacheName        'cache内容application名

  private path            'url

  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

  %>

  使用方法:

  

复制代码 代码如下:

  set myCache=new cache

  myCache.name="flash1"

  If myCache.valid then

  StartGet = myCache.value

  Else

  StartGet = GetHttpPage(HttpUrl)

  myCache.add StartGet,dateadd("h",3,Now)

  End if

  List=GetBody(StartGet,"</form>","<!-- ********网页中部代码结束******** -->",False,False)