código do programa
<%
'por xilou,www.chinacms.org,20090115
'Última atualização: 20090115
'Registro de modificação: nenhum
CONST CACHEPREFIX = "CACHE_" 'Prefixo de cache, não pode ficar vazio
' Descrição:
' 1. O formato do cache é Application(CACHEPREFIX & key) = array("cache key", "cache time", "cache content", "cache description", "expiration time")
'2, a chave de cache não diferencia maiúsculas de minúsculas
'Adicionar cache sem verificar se o cache existe. Se existir, é equivalente a atualizar o cache.
'varAry: parâmetro, o formato é: array("chave de cache", "tempo de cache", "conteúdo de cache", "descrição de cache")
'Chave de cache: o mesmo formato que application()
'Tempo de cache: unidade de segundos, pode ser um número negativo, indicando expiração imediata, pode estar vazio, vazio ou não ser um número, o padrão é 20 minutos de expiração
'Conteúdo do cache: dados do cache, cache de objetos não é suportado
'Descrição do cache: descrição do cache
Função AddCache(varAry)
Dim c,ário(4)
Se não for IsArray(varAry) então
Response.Write "Erro: erro de parâmetro AddCache (varAry), o parâmetro não é uma matriz"
Resposta.End()
Terminar se
Se UBound(varAry) <> 3 Então
Response.Write "Erro: erro de parâmetro AddCache (varAry), erro de comprimento de matriz"
Resposta.End()
Terminar se
Se varAry(0) = "" Então
Response.Write "Erro: erro AddCache (varAry), a chave não pode estar vazia"
Resposta.End()
Terminar se
Se varAry(1) = "" ou Not IsNumeric(varAry(1)) Então varAry(1) = 1200
Aplicativo.Lock()
Aplicação(CACHEPREFIX & varAry(0)) = array(varAry(0),varAry(1),varAry(2),varAry(3),DateAdd("s",varAry(1),Now()))
Aplicativo.UnLock()
Função final
'Verifica se existe um cache, retorne True se existir, caso contrário retorne False
'chave: chave de cache
Função CheckCache(chave)
Escurecer
Para cada k em Application.Contents
Se LCase (k) = LCase (CACHEPREFIX & key) Então CheckCache = True: Função de saída
Próximo
CheckCache = Falso
Função final
'Obter cache
'Retorna um array no formato: array("chave de cache", "tempo de cache", "conteúdo de cache", "descrição de cache", "tempo de expiração", se expirou True|False)
'Se não existir, ocorrerá um erro, então verifique com CheckCache(key) antes de obtê-lo.
Função GetCache(chave)
Aplicativo escuro,isExp
app = Aplicativo (CACHEPREFIX e chave)
isExp = Falso
Se DateDiff("s",Now(),app(4)) <= 0 Então isExp = True
GetCache = Array(app(0),app(1),app(2),app(3),app(4),isExp)
Função final
'Limpar cache
Função RemoveCache(chave)
Aplicativo.Lock()
Application.Contents.Remove(CACHEPREFIX e chave)
Aplicativo.UnLock()
Função final
'Atualize o cache. Se o cache não existir, ocorrerá um erro, então verifique com CheckCache(key) antes de atualizar.
'varAry: parâmetro, o formato é: array("chave de cache", "tempo de cache", "conteúdo de cache", "descrição de cache")
'Chave de cache: o mesmo formato que application()
'Tempo de cache: unidade de segundos, pode ser um número negativo, indicando expiração imediata, pode estar vazio, vazio ou não ser um número, o padrão é 20 minutos de expiração
'Conteúdo do cache: dados do cache, cache de objetos não é suportado
'Descrição do cache: descrição do cache
'Nota: Se você não atualizar um determinado valor de varAry, basta definir o valor como nulo.
' Tal como UpdateCache(array("key",null,"content",null)), o que significa que o tempo de expiração e a descrição não serão atualizados.
Função UpdateCache(varAry)
Escurecer aplicativo
aplicativo = GetCache(varAry(0))
Se não for nulo(varAry(1)) Então app(1) = varAry(1)
Se não for nulo(varAry(2)) Então app(2) = varAry(2)
Se não for nulo(varAry(3)) Então app(3) = varAry(3)
Se app(1) = "" ou Not IsNumeric(app(1)) Então app(1) = 1200
Aplicativo.Lock()
Aplicativo(CACHEPREFIX & app(0)) = array(app(0),app(1),app(2),app(3),DateAdd("s",app(1),Now()))
Aplicativo.UnLock()
Função final
'www.downcodes.com
'Imprime cache para depuração
Função PrintCache(chave)
Escurecer aplicativo, eu, t
Se CheckCache(chave) Então
aplicativo = GetCache(chave)
Resposta.Write "<pre>{"&chr(10)
Response.Write chr(32) & "nome do cache" & chr(32) & ":" & chr(32) & CACHEPREFIX & app(0) & chr(10)
Response.Write chr(32) & "chave de cache " & chr(32) & ":" & chr(32) & app(0) & chr(10)
Response.Write chr(32) & "tempo de cache" & chr(32) & ":" & chr(32) & app(1) & chr(10)
Response.Write chr(32) & "Tempo de expiração" & chr(32) & ":" & chr(32) & app(4) & chr(10)
Response.Write chr(32) & "É devido?" & chr(32) & ":" & chr(32) & app(5) & chr(10)
Response.Write chr(32) & "descrição do cache" & chr(32) & ":" & chr(32) & app(3) & chr(10)
'contente
Response.Write chr(32) & "conteúdo em cache" & chr(32) & ":" & chr(32)
t = VarType(aplicativo(2))
Se InStr(",0,1,2,3,4,5,6,7,8,11,",","&t&",") > 0 Então
Aplicativo Response.Write(2)
Outro
Response.Write TypeName(app(2))
Terminar se
Resposta.Escreva chr(10)
Resposta.Write "}</pre>"&chr(10)
Outro
Response.Write "O cache não existe"
Terminar se
Função final
'----------demo
Sub br(str)
Response.Write str & "<br />" & vbcrlf
Finalizar sub
'RemoveCache "xilou"
'AddCache Array("xilou","",array("conteúdo dos dados"),"descrição do cache")
br CheckCache("xilou")
PrintCache "xilou"
Escurecer aplicativo
Se CheckCache("xilou") Então
app = GetCache("xilou") 'Obter
Matriz UpdateCache(app(0),null,"testsfsfsf",null)'Atualizar
Outro
Matriz AddCache("xilou","","conteúdo","descrição")
Terminar se
'Escuro k
'Para cada k em Application.Contents
'br k
'Próximo
%>