程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 一個asp緩存函數,支持字符串和數組

一個asp緩存函數,支持字符串和數組

編輯:ASP技巧

主函數
 程序代碼
<%
'***********************************************
'函數名: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
%>

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved