主函數
程序代碼
<%
'***********************************************
'函數名:getcache
'作 用:將需要緩存的內容,置入緩存中,並讀取出來,如果緩存中存在該內容,則直接從緩存讀取!
'作 者: 靜¢脈(hayden)
'時 間: 2007-12-21
'參 數:funsname ---- 需要緩存的內容
' isreset ---- 是否更新[值:0(根據時間或判斷緩存為空時自動更新)、1(主動更新)]
' isarr ---- 所緩存的內容是否為一個數據[0為字符串,1為數組]
' timeinfo ---- 緩存更新時間,單位為秒,當值為0時,則只在緩存為空時,才更新
'返回值:緩存名為"funsname”的內容
'***********************************************
Function getcache(funsname,isreset,isarr,timeinfo)
dim domain = "myhhe.cn" '緩存域
Dim temp_getconfig
Dim re_getcache : re_getcache = False
Dim temp_isarray_type : temp_isarray_type = False
Dim Appfunsname : Appfunsname = Replace(Replace(Replace(funsname,"(",""),")",""),",",".")
If isarr = 1 Then temp_isarray_type = True
If isreset = 1 Then re_getcache = True
If isreset = 2 Then
execute("temp_getconfig="&funsname)
getcache = temp_getconfig
Exit Function
End If
If application(domain&"_"&Appfunsname&"_time") = "" And timeinfo<>0 Then re_getcache = True
If Not re_getcache Then
If temp_isarray_type Then
If Not IsArray(Application(domain&"_"&Appfunsname)) Then re_getcache = True
Else
If Application(domain&"_"&Appfunsname) = "" Then re_getcache = True
End If
End If
If Not re_getcache And timeinfo<>0 Then
If Int(DateDiff("s",Application(domain&"_"&Appfunsname&"_time"),now()))>timeinfo Then re_getcache = True
End If
If re_getcache Then
execute("temp_getconfig="&funsname)
Application.Lock
Application(domain&"_"&Appfunsname) = temp_getconfig
Application(domain&"_"&Appfunsname&"_time") = Now()
Application.UnLock
Else
temp_getconfig=Application(domain&"_"&Appfunsname)
End If
getcache = temp_getconfig
End Function
%>
調用示例:
程序代碼
<%
Function out_test1 '返回一個字符串的示例函數
out_test1="這裡是一個字符串"
End Function
Function out_test2 '返回一個數組的示例函數
Dim temp_out_test2
temp_out_test2="這裡.是.一個.數組"
out_test2=Split(temp_out_test2,".")
End Function
Dim i
'字符串緩存(將函數out_test1從緩存讀取並輸出)
Dim str2 : str2 = getcache("out_test1",0,0,180) '通過getcache函數讀取緩存.刷新時間為180秒,(當out_test1緩存為空,會自動訪問函數out_test1輸出,並同時置入緩存~)
response.write str2
response.write "<BR><BR><BR>"
'數組緩存(將函數out_test2從緩存讀取並輸出)
Dim str1 : str1 = getcache("out_test2",0,1,180) '同上(字符串緩存說明)
For i = 0 To UBound(str1)
response.write str1(i) & "<BR>"
Next
%>