Lors de la rédaction de programmes ASP, afin d'améliorer l'efficacité des programmes ASP et de réduire les connexions et les requêtes à la base de données, la technologie de mise en cache est généralement utilisée pour mettre en cache certaines données qui doivent être lues dans la base de données. Ensuite, la mauvaise nouvelle chaîne technologique vous mènera pour jeter un œil!
exemple:
Code du programme:
La copie de code est la suivante:DIM RS, Arr
Rs.Open Conn, SQL, 1,1
arr = Rs.Getrows ()
Application.lock ()
Application ("cache") = arr
Applicatoin.unlock ()
Dans VBScript, les tableaux peuvent être stockés dans des objets d'application, mais si le langage ASP est sélectionné comme JScript, ce sera un peu mauvais. Lorsque nous utilisons l'application pour stocker un tableau, l'erreur suivante se produira:
Citation:
Objet d'application, ASP 0197 (0x80004005)
Utilisation d'objets interdits
Impossible d'ajouter un objet avec un comportement du modèle d'appartement à l'objet intrinsèque de l'application.
Les raisons spécifiques peuvent être trouvées dans la base de connaissances de Microsoft comme suit:
Citation:
Les tableaux JScript sont considérés comme des composants «appartements». Seuls les composants du modèle d'objet de composant (COM) qui regroupent le maréchaleur fileté gratuit (FTM) peuvent être affectés à la portée de l'application dans une page ASP Server (IIS) 5.0. Étant donné qu'un composant "appartement" ne peut pas agréger le FTM (il ne peut pas permettre à un pointeur direct d'être transmis à ses clients, contrairement à un objet "à la fois avec FTM"), les tableaux JScript n'agrégatent pas le FTM. Par conséquent, les tableaux JScript ne peuvent pas être affectés à la portée de l'application à partir d'une page ASP.
La description ci-dessus est citée dans: PRB: Erreur lorsque vous stockez un tableau JScript dans la portée de l'application dans IIS 5.0
Par conséquent, afin de résoudre ce problème, j'ai recherché une réunion majeure dans Google et j'ai finalement trouvé un article "quelques conclusions sur le cache pour les objets d'application et les objets static". Pour résoudre ce problème, la méthode consiste à utiliser Application.StaticObject pour stocker un objet Scripting.Dictionary, puis utiliser l'objet Scripting.Dictionary pour stocker les données qui doivent être mises en cache.
Sur la base de cela, une classe pour le cache d'opération est écrite pour mettre en œuvre des méthodes de put, obtenez, supprimez et effacez les méthodes. Avant de l'utiliser, vous devez ajouter un objet dans global.asa:
Code du programme:
<objet id = "xbscache" runat = "server" scope = "application" programme = "scripting.dictionary"> </ objet>
La mise en œuvre de la classe est la suivante:
La copie de code est la suivante:<script lingots = "jscript" runat = "server">
/ **
Titre: Classe de fonctionnement du cache
Description: Cache du système d'exploitation
@Copyright: Copyright (C) 2007
@Author: xujiwei
@Website: http://www.xujiwei.cn/
@Version: 1.0
@Time: 2007-06-29 12:03:45
** /
var xbscache = {
get: function (key) {
return application.staticObjects ("XBSCACH"). Item ("Cache." + Key);
},
put: fonction (clé, données) {
Application.lock ();
Application.StaticObjects ("XBSCACH"). Item ("Cache." + Key) = Data;
Application.unlock ();
},
supprimer: fonction (clé) {
Application.lock ();
Application.StaticObjects ("XBSCache"). Supprime ("Cache." + Key);
Application.unlock ();
},
Clear: function () {
Application.lock ();
Application.StaticObjects ("XBSCache"). RemoveAll ();
Application.unlock ();
}
}
</cript>
De cette façon, l'implémentation du cache lors de l'utilisation de JScript dans ASP est terminée. J'espère que le contenu compilé par l'éditeur du canal Error New Technology pourra vous fournir de l'aide.