Cela fait 7 ans qu'ASP est sorti et l'utilisation de la technologie ASP est devenue assez mature. Depuis que Microsoft a lancé ASP.NET, il a progressivement cessé de mettre à jour la version ASP. Mais comme de nombreuses personnes sont encore habituées à utiliser ASP pour développer des sites Web, je vais encore une fois utiliser un exemple simple pour illustrer comment utiliser le cache dans ASP.
En termes simples, le principe de base de l'utilisation du cache est de stocker en mémoire les données fréquemment nécessaires et coûteuses pendant une certaine période de temps afin que ces données puissent être consultées directement et globalement. Par exemple, certaines données doivent être interrogées à partir de plusieurs tables de la base de données, et presque chaque page doit appeler ces données. La meilleure implémentation dans ce cas consiste à mettre en cache cette partie des données. Une implémentation simple dans ASP consiste à encapsuler la forme d'expression finale de ces données (telle qu'un flux HTML) dans une chaîne, puis à la stocker dans l'objet intégré ASP. Application (cet article traite principalement du cache dynamique, et les applications ASP simples seront omises). L'avantage est que ce HTML peut être appelé globalement sur l'ensemble du site Web et que l'application est stockée en mémoire, il n'est donc pas nécessaire d'interroger la base de données, accélérant ainsi le temps de réponse et économisant la charge du serveur. Bien entendu, cela se fait au détriment de la consommation de mémoire et constitue un exemple typique d’échange d’espace contre du temps.
Bien que l'utilisation de cette méthode présente de nombreux avantages, lorsque vous rencontrez des sources de données (bases de données) qui changent fréquemment, cette méthode peut ne plus être applicable, car l'objet Application ASP présente un inconvénient, c'est-à-dire qu'il ne peut pas changer automatiquement avec les modifications de la source de données. . modifier ou contrôler l’intervalle d’actualisation. Par conséquent, les développeurs doivent programmer pour implémenter le cache dynamique. Bien entendu, lors de la conception du programme, l'Application peut être mise à jour à chaque fois que la source de données (base de données) est modifiée. Ainsi, la source de données (base de données) est toujours cohérente. Il y aura davantage de questions à prendre en compte lors de la programmation et il est facile de passer à côté de détails. Je ne recommande donc pas cette méthode sauf dans des situations particulières.
Je pense que le meilleur moyen dans ASP est d'utiliser la programmation pour actualiser régulièrement le cache, ce qui signifie définir un délai d'expiration pour les données stockées dans l'application. Bien entendu, l'objet Application dans ASP ne possède pas un tel attribut ExpireTime. Cela doit être mis en œuvre par programme.
Code
ASP : default.asp
< %@Language=VBScript% >
<%Option explicite%>
<%Response.Buffer=True%>
<!--#include file = "conn.asp"-->
<!--#include file = "GetCache.asp"-->
<HTML>
<TÊTE>
<TITLE>Démonstration du cache ASP</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
</HEAD>
<CORPS>
<h4>Actualiser le cache toutes les 10 secondes :</h4>
<%
réponse.Flush
ObtenirHTMLStream
réponse.Écrire
Flux HTML
%>
</corps>
</html>
ASP : getcache.asp
<%
Const CACHE_DEFAULT_INTERVAL = 30 'Actualiser le cache toutes les 30 secondes
Faible flux HTML
DimIsExpires
IsExpires = CacheExpires
FunctionCacheExpires
Dim strLastUpdate
Résultat faible strLastUpdate = Application("LastUpdate")
Si (strLastUpdate = "") Ou (CACHE_DEFAULT_INTERVAL < DateDiff("s", strLastUpdate, Now)) Alors
résultat = vrai
DéfinirLastUpdateTime
Autre
résultat = faux
Fin si
CacheExpires = résultat
Fin de la fonction
Sub SetLastUpdateTime
Application.Lock
Application("LastUpdate") = CStr(maintenant())
Application.UnLock
Fin du sous-
sous GetHTMLStream
Si IsExpire Alors
Mettre à jourHTMLStream
Fin si
HTMLStream=Application("CACHE_HTMLStream")
Fin du sous-
sous-mise à jourHTMLStream
faible d
d = RécupérerHTMLStream
Application.Lock
Application("CACHE_HTMLStream") = d
Application.UnLock
Fin de la sous
-fonction FetchHTMLStream
Dimrs, strSQL, strHTML
Définir rs = CreateObject("ADODB.Recordset")
strSQL = "sélectionnez l'ID de catégorie, le nom de catégorie parmi les catégories"
rs.Open strSQL, strConn, adOpenForwardOnly, adLockReadOnly
strHTML = strHTML & "<select name=""slt_search"">"
while (pas rs.EOF)
strHTML = strHTML & "<option>"
strHTML = strHTML & rs.Fields("nom de catégorie")
strHTML = strHTML & "</option>" rs.MoveNext
wend
strHTML = strHTML & "</select>"
rs.Fermer
Setrs=Rien
RécupérerHTMLStream = strHTML
Fonction de fin
%>
ASP : conn.asp
<!--METADATA NAME="Bibliothèque Microsoft ActiveX Data Objects 2.5" TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}"-->
<%
faible strConn
strConn = "Provider=SQLOLEDB.1; Sécurité intégrée=SSPI; Informations de sécurité persistantes=False; Catalogue initial=Northwind"
%>