程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP實現緩存類無錯版

ASP實現緩存類無錯版

編輯:關於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 '釋放對象
%>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved