プログラムコード
<%
「xilou著、www.chinacms.org、20090115」
'最終更新日: 20090115
'変更記録: なし
CONST CACHEPREFIX = "CACHE_" 'キャッシュ プレフィックス、空にすることはできません
' 説明:
' 1. キャッシュ形式は Application(CACHEPREFIX & key) = array("cache key", "cache time", "cache content", "cache description", "expiration time") です。
'2、キャッシュキーは大文字と小文字を区別しません
' キャッシュが存在するかどうかを確認せずにキャッシュを追加します。存在する場合は、キャッシュを更新するのと同じです。
'varAry: パラメーター、形式は次のとおりです: array("キャッシュ キー", "キャッシュ時間", "キャッシュ コンテンツ", "キャッシュの説明")
'キャッシュキー: application() と同じ形式
'キャッシュ時間: 単位は秒、すぐに有効期限が切れることを示す負の数値にすることができます。空、空、または数値以外にすることもできます。デフォルトは 20 分の有効期限です。
'コンテンツのキャッシュ: データのキャッシュ、オブジェクトのキャッシュはサポートされていません
'キャッシュの説明: キャッシュの説明
関数AddCache(varAry)
ディムc,ary(4)
IsArray(varAry) でない場合
Response.Write "エラー: AddCache(varAry) パラメータ エラー、パラメータは配列ではありません"
Response.End()
終了の場合
If UBound(varAry) <> 3 then
Response.Write "エラー: AddCache(varAry) パラメータ エラー、配列長エラー"
Response.End()
終了の場合
varAry(0) = "" の場合
Response.Write "エラー: AddCache(varAry) エラー、キーを空にすることはできません"
Response.End()
終了の場合
varAry(1) = "" または Not IsNumeric(varAry(1)) の場合、varAry(1) = 1200
Application.Lock()
Application(CACHEPREFIX & varAry(0)) = array(varAry(0),varAry(1),varAry(2),varAry(3),DateAdd("s",varAry(1),Now()))
Application.UnLock()
終了機能
'キャッシュが存在するかどうかを確認し、存在する場合は True を返し、存在しない場合は False を返します
'key: キャッシュキー
関数 CheckCache(キー)
ディムk
Application.Contents の各 k について
LCase(k) = LCase(CACHEPREFIX & key) の場合、CheckCache = True : 関数を終了
次
チェックキャッシュ = False
終了機能
'キャッシュを取得
'配列を次の形式で返します: array("キャッシュ キー", "キャッシュ時間", "キャッシュ コンテンツ", "キャッシュの説明", "有効期限"、期限切れかどうか True|False)
'存在しない場合はエラーになるので、CheckCache(key)で確認してから取得してください。
関数 GetCache(キー)
暗いアプリ、isExp
app = アプリケーション(CACHEPREFIX & キー)
isExp = False
DateDiff("s",Now(),app(4)) <= 0 の場合、isExp = True
GetCache = Array(app(0),app(1),app(2),app(3),app(4),isExp)
終了機能
'キャッシュをクリア
関数 RemoveCache(キー)
Application.Lock()
Application.Contents.Remove(CACHEPREFIX & キー)
Application.UnLock()
終了機能
'キャッシュを更新します。キャッシュが存在しない場合はエラーとなりますので、CheckCache(key)で確認してから更新してください。
'varAry: パラメーター、形式は次のとおりです: array("キャッシュ キー", "キャッシュ時間", "キャッシュ コンテンツ", "キャッシュの説明")
'キャッシュキー: application() と同じ形式
'キャッシュ時間: 単位は秒、すぐに有効期限が切れることを示す負の数値にすることができます。空、空、または数値以外にすることもできます。デフォルトは 20 分の有効期限です。
'コンテンツのキャッシュ: データのキャッシュ、オブジェクトのキャッシュはサポートされていません
'キャッシュの説明: キャッシュの説明
注: varAry の特定の値を更新しない場合は、値を null に設定するだけです。
' UpdateCache(array("key",null,"content",null)) など。これは、有効期限と説明が更新されないことを意味します。
関数 UpdateCache(varAry)
暗いアプリ
app = GetCache(varAry(0))
IsNull(varAry(1)) でない場合、app(1) = varAry(1)
IsNull(varAry(2)) でない場合、app(2) = varAry(2)
IsNull(varAry(3)) でない場合、app(3) = varAry(3)
app(1) = "" または Not IsNumeric(app(1)) の場合、app(1) = 1200
Application.Lock()
Application(CACHEPREFIX & app(0)) = array(app(0),app(1),app(2),app(3),DateAdd("s",app(1),Now()))
Application.UnLock()
終了機能
「www.downcodes.com」
'デバッグ用の印刷キャッシュ
関数 PrintCache(キー)
暗いアプリ、i、t
If CheckCache(key) then
app = GetCache(キー)
Response.Write "<pre>{"&chr(10)
Response.Write chr(32) & "キャッシュ名" & chr(32) & ":" & chr(32) & CACHEPREFIX & app(0) & chr(10)
Response.Write chr(32) & "キャッシュキー" & chr(32) & ":" & chr(32) & app(0) & chr(10)
Response.Write chr(32) & "キャッシュ時間" & chr(32) & ":" & chr(32) & app(1) & chr(10)
Response.Write chr(32) & "有効期限" & chr(32) & ":" & chr(32) & app(4) & chr(10)
Response.Write chr(32) & "期限はありますか?" & chr(32) & ":" & chr(32) & app(5) & chr(10)
Response.Write chr(32) & "キャッシュの説明" & chr(32) & ":" & chr(32) & app(3) & chr(10)
'コンテンツ
Response.Write chr(32) & "キャッシュされたコンテンツ" & chr(32) & ":" & chr(32)
t = VarType(app(2))
InStr(",0,1,2,3,4,5,6,7,8,11,",","&t&",") > 0 の場合
応答.書き込みアプリ(2)
それ以外
Response.Write TypeName(app(2))
終了の場合
応答.書き込み chr(10)
Response.Write "}</pre>"&chr(10)
それ以外
Response.Write "キャッシュが存在しません"
終了の場合
終了機能
'----------デモ
Sub br(str)
Response.Write str & "<br />" & vbcrlf
エンドサブ
'キャッシュの削除「xilou」
'AddCache Array("xilou","",array("データコンテンツ"),"キャッシュの説明")
br CheckCache("xilou")
プリントキャッシュ「xilou」
暗いアプリ
If CheckCache("xilou") then
app = GetCache("xilou") '取得
UpdateCache array(app(0),null,"testsfsfsf",null)'更新
それ以外
AddCache array("xilou","","content","description")
終了の場合
「ディムk」
'For Each k In Application.Contents
'brk
'次
%>