código de programa
<%
'por xilou,www.chinacms.org,20090115
'Última actualización: 20090115
'Registro de modificación: ninguno
CONST CACHEPREFIX = "CACHE_" 'Prefijo de caché, no puede estar vacío
' Descripción:
' 1. El formato de la caché es Aplicación (CACHEPREFIX & clave) = matriz ("clave de caché", "tiempo de caché", "contenido de caché", "descripción de caché", "tiempo de vencimiento")
'2, la clave de caché no distingue entre mayúsculas y minúsculas
'Agregar caché sin verificar si existe. Si existe, equivale a actualizar el caché.
'varAry: parámetro, el formato es: matriz("clave de caché", "tiempo de caché", "contenido de caché", "descripción de caché")
'Clave de caché: el mismo formato que la aplicación()
'Tiempo de caché: unidad de segundos, puede ser un número negativo, que indica caducidad inmediata, puede estar vacío, vacío o no es un número, el valor predeterminado es 20 minutos de caducidad
'Contenido de la caché: datos en caché, el almacenamiento en caché de objetos no es compatible
'Descripción de la caché: descripción de la caché
Función AddCache(varAry)
Dim c,ario(4)
Si no es IsArray (varAry) entonces
Response.Write "Error: error de parámetro AddCache(varAry), el parámetro no es una matriz"
Respuesta.Fin()
Terminar si
Si UBound(varAry) <> 3 Entonces
Response.Write "Error: error de parámetro AddCache(varAry), error de longitud de matriz"
Respuesta.Fin()
Terminar si
Si varAry(0) = "" Entonces
Response.Write "Error: error AddCache(varAry), la clave no puede estar vacía"
Respuesta.Fin()
Terminar si
Si varAry(1) = "" o no esNumeric(varAry(1)) Entonces varAry(1) = 1200
Aplicación.Lock()
Aplicación(CACHEPREFIX & varAry(0)) = matriz(varAry(0),varAry(1),varAry(2),varAry(3),DateAdd("s",varAry(1),Now()))
Aplicación.Desbloquear()
Función final
'Comprueba si existe un caché, devuelve True si existe, de lo contrario devuelve False
'clave: clave de caché
Función CheckCache(clave)
tenue k
Para cada k en la aplicación.Contenido
Si LCase(k) = LCase(CACHEPREFIX y clave) Entonces CheckCache = True: Salir de la función
Próximo
CheckCache = Falso
Función final
'Obtener caché
'Devuelve una matriz en el formato: matriz("clave de caché", "tiempo de caché", "contenido de caché", "descripción de caché", "tiempo de vencimiento", si ha caducado Verdadero|Falso)
'Si no existe, se producirá un error, así que verifique con CheckCache(clave) antes de obtenerlo.
Función GetCache(clave)
Aplicación tenue, isExp
aplicación = Aplicación (CACHEPREFIX y clave)
esExp = Falso
Si DateDiff("s",Now(),app(4)) <= 0 Entonces isExp = True
GetCache = Matriz(aplicación(0),aplicación(1),aplicación(2),aplicación(3),aplicación(4),isExp)
Función final
'Borrar caché
Función RemoveCache(clave)
Aplicación.Lock()
Aplicación.Contenido.Remove(CACHEPREFIX y clave)
Aplicación.Desbloquear()
Función final
'Actualice el caché. Si el caché no existe, se producirá un error, así que consulte con CheckCache(clave) antes de actualizar.
'varAry: parámetro, el formato es: matriz("clave de caché", "tiempo de caché", "contenido de caché", "descripción de caché")
'Clave de caché: el mismo formato que la aplicación()
'Tiempo de caché: unidad de segundos, puede ser un número negativo, que indica caducidad inmediata, puede estar vacío, vacío o no es un número, el valor predeterminado es 20 minutos de caducidad
'Contenido de la caché: datos en caché, el almacenamiento en caché de objetos no es compatible
'Descripción de la caché: descripción de la caché
'Nota: Si no actualiza un determinado valor de varAry, simplemente establezca el valor en nulo.
' Como UpdateCache(array("key",null,"content",null)), lo que significa que el tiempo de vencimiento y la descripción no se actualizarán.
Función UpdateCache(varAry)
aplicación tenue
aplicación = GetCache(varAry(0))
Si no es nulo (varAry (1)) entonces aplicación (1) = varAry (1)
Si no es nulo (varAry (2)) entonces aplicación (2) = varAry (2)
Si no es nulo (varAry (3)) entonces aplicación (3) = varAry (3)
Si aplicación(1) = "" o no es numérica(aplicación(1)) Entonces aplicación(1) = 1200
Aplicación.Lock()
Aplicación (CACHEPREFIX y aplicación (0)) = matriz (aplicación (0), aplicación (1), aplicación (2), aplicación (3), DateAdd ("s", aplicación (1), Now()))
Aplicación.Desbloquear()
Función final
'www.downcodes.com
'Imprimir caché para depurar
Función PrintCache(clave)
Aplicación tenue,i,t
Si CheckCache (clave) Entonces
aplicación = GetCache(clave)
Respuesta.Escribir "<pre>{"&chr(10)
Respuesta.Escribir chr(32) & "nombre de caché" & chr(32) & ":" & chr(32) & CACHEPREFIX & app(0) & chr(10)
Respuesta.Escribir chr(32) & "clave de caché" & chr(32) & ":" & chr(32) & app(0) & chr(10)
Respuesta.Escribir chr(32) & "tiempo de caché" & chr(32) & ":" & chr(32) & app(1) & chr(10)
Respuesta.Escribir chr(32) & "Tiempo de vencimiento" & chr(32) & ":" & chr(32) & app(4) & chr(10)
Respuesta.Escribir chr(32) & "¿Es debido?" & chr(32) & ":" & chr(32) & app(5) & chr(10)
Respuesta.Escribir chr(32) & "descripción de caché" & chr(32) & ":" & chr(32) & app(3) & chr(10)
'contenido
Respuesta.Escribir chr(32) & "contenido en caché" & chr(32) & ":" & chr(32)
t = TipoVar(aplicación(2))
Si InStr(",0,1,2,3,4,5,6,7,8,11,",","&t&",") > 0 Entonces
Aplicación Response.Write(2)
Demás
Respuesta.Escribir nombre de tipo (aplicación (2))
Terminar si
Respuesta.Escribir chr(10)
Respuesta.Escribir "}</pre>"&chr(10)
Demás
Response.Write "El caché no existe"
Terminar si
Función final
'----------demo
Sub br(cadena)
Respuesta.Escribir str & "<br />" & vbcrlf
Subtítulo final
'Eliminar caché "xilou"
'AddCache Array("xilou","",array("contenido de datos"),"descripción de caché")
br CheckCache("xilou")
Imprimir caché "xilou"
aplicación tenue
Si CheckCache ("xilou") entonces
aplicación = GetCache("xilou") 'Obtener
UpdateCache array(app(0),null,"testsfsfsf",null)'Actualizar
Demás
AddCache array ("xilou", "contenido", "descripción")
Terminar si
'Dim k
'Para cada k en la aplicación.Contenido
'br k
'Próximo
%>