code de programme
<%
'par Xilou,www.chinacms.org,20090115
'Dernière mise à jour : 20090115
'Enregistrement de modification : aucun
CONST CACHEPREFIX = "CACHE_" 'Préfixe du cache, ne peut pas être vide
' Description :
' 1. Le format du cache est Application(CACHEPREFIX & key) = array("cache key", "cache time", "cache content", "cache description", "expiration time")
'2, la clé de cache n'est pas sensible à la casse
'Ajouter du cache sans vérifier si le cache existe. S'il existe, cela équivaut à mettre à jour le cache.
'varAry : paramètre, le format est : array("clé de cache", "heure du cache", "contenu du cache", "description du cache")
'Clé de cache : le même format que application()
'Durée du cache : unité en secondes, peut être un nombre négatif, indiquant une expiration immédiate, peut être vide, vide ou ne pas être un nombre, la valeur par défaut est une expiration de 20 minutes
'Contenu du cache : données en cache, la mise en cache des objets n'est pas prise en charge
'Description du cache : description du cache
Fonction AddCache(varAry)
Dim c,ary(4)
Si ce n'est pas IsArray(varAry) Alors
Response.Write "Erreur : erreur de paramètre AddCache (varAry), le paramètre n'est pas un tableau"
Réponse.Fin()
Fin si
Si UBound(varAry) <> 3 Alors
Response.Write "Erreur : erreur de paramètre AddCache (varAry), erreur de longueur de tableau"
Réponse.Fin()
Fin si
Si varAry(0) = "" Alors
Response.Write "Erreur : erreur AddCache (varAry), la clé ne peut pas être vide"
Réponse.Fin()
Fin si
Si varAry(1) = "" ou Not IsNumeric(varAry(1)) Alors 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()
Fonction de fin
'Vérifie si un cache existe, renvoie True s'il existe, sinon renvoie False
'clé : clé de cache
Fonction CheckCache (clé)
Dim k
Pour chaque k dans l'application.Contenu
Si LCase(k) = LCase(CACHEPREFIX & key) Alors CheckCache = True : Quitter la fonction
Suivant
CheckCache = Faux
Fonction de fin
'Obtenir le cache
'Renvoie un tableau au format : array("Cache Key", "Cache Time", "Cache Content", "Cache Description", "Expir Time", s'il a expiré True|False)
'S'il n'existe pas, une erreur se produira, alors vérifiez avec CheckCache(key) avant de l'obtenir.
Fonction GetCache (clé)
Application Dim, isExp
app = Application (CACHEPREFIX & clé)
isExp = Faux
Si DateDiff("s",Now(),app(4)) <= 0 Alors isExp = True
GetCache = Tableau(app(0),app(1),app(2),app(3),app(4),isExp)
Fonction de fin
'Vider le cache
Fonction RemoveCache (clé)
Application.Lock()
Application.Contents.Remove (CACHEPREFIX et clé)
Application.UnLock()
Fonction de fin
'Mettez à jour le cache. Si le cache n'existe pas, une erreur se produira, alors vérifiez avec CheckCache(key) avant de mettre à jour.
'varAry : paramètre, le format est : array("clé de cache", "heure du cache", "contenu du cache", "description du cache")
'Clé de cache : le même format que application()
'Durée du cache : unité en secondes, peut être un nombre négatif, indiquant une expiration immédiate, peut être vide, vide ou ne pas être un nombre, la valeur par défaut est une expiration de 20 minutes
'Contenu du cache : données en cache, la mise en cache des objets n'est pas prise en charge
'Description du cache : description du cache
'Remarque : Si vous ne mettez pas à jour une certaine valeur de varAry, définissez simplement la valeur sur null.
' Tel que UpdateCache(array("key",null,"content",null)), ce qui signifie que le délai d'expiration et la description ne seront pas mis à jour.
Fonction UpdateCache (varAry)
Application Dim
application = GetCache (varAry (0))
Si ce n'est pas IsNull(varAry(1)) Alors app(1) = varAry(1)
Si ce n'est pas IsNull(varAry(2)) Alors app(2) = varAry(2)
Si ce n'est pas IsNull(varAry(3)) Alors app(3) = varAry(3)
Si app(1) = "" ou Not IsNumeric(app(1)) Alors 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()
Fonction de fin
'www.downcodes.com
'Imprimer le cache pour le débogage
Fonction PrintCache (clé)
Dim app, je, t
Si CheckCache(clé) Alors
application = GetCache (clé)
Réponse.Écrivez "<pre>{"&chr(10)
Réponse.Écrivez chr(32) & "nom du cache" & chr(32) & ":" & chr(32) & CACHEPREFIX & app(0) & chr(10)
Réponse.Écrire chr(32) & "clé de cache" & chr(32) & ":" & chr(32) & app(0) & chr(10)
Réponse.Écrivez chr(32) & "temps de cache" & chr(32) & ":" & chr(32) & app(1) & chr(10)
Réponse.Écrivez chr(32) & "Délai d'expiration" & chr(32) & ":" & chr(32) & app(4) & chr(10)
Réponse.Écrivez chr(32) & "Est-ce dû ?" & chr(32) & ":" & chr(32) & app(5) & chr(10)
Réponse.Écrivez chr(32) & "description du cache" & chr(32) & ":" & chr(32) & app(3) & chr(10)
'contenu
Réponse.Écrire chr(32) & "contenu mis en cache" & chr(32) & ":" & chr(32)
t = VarType(app(2))
Si InStr(",0,1,2,3,4,5,6,7,8,11,",","&t&",") > 0 Alors
Application Response.Write (2)
Autre
Réponse.Write TypeName (app (2))
Fin si
Réponse.Écrire chr(10)
Réponse.Écrivez "}</pre>"&chr(10)
Autre
Response.Write "Le cache n'existe pas"
Fin si
Fonction de fin
'----------démo
Sub br(str)
Réponse.Write str & "<br />" & vbcrlf
Fin du sous-marin
'Supprimer le cache "xilou"
'AddCache Array("xilou","",array("contenu des données"),"description du cache")
br CheckCache("xilou")
PrintCache "xilou"
Application Dim
Si CheckCache("xilou") Alors
app = GetCache("xilou") 'Obtenir
Tableau UpdateCache(app(0),null,"testsfsfsf",null)'Mise à jour
Autre
Tableau AddCache("xilou","","content","description")
Fin si
'Dim k
'Pour chaque k dans l'application.Contenu
'brk
'Suivant
%>