Al escribir programas ASP, para mejorar la eficiencia de los programas ASP y reducir las conexiones y consultas a la base de datos, la tecnología de almacenamiento en caché generalmente se usa para almacenar en caché algunos datos que deben leerse de la base de datos. A continuación, ¡el nuevo canal de tecnología incorrecto te llevará a echar un vistazo!
ejemplo:
Código de programa:
La copia del código es la siguiente:Dim rs, arr, arr
Rs.open Conn, SQL, 1,1
arr = rs.getrows ()
Application.lock ()
Aplicación ("caché") = arr
Aplicatoin.unlock ()
En VBScript, las matrices se pueden almacenar en objetos de aplicación, pero si el idioma ASP se selecciona como JScript, entonces será un poco malo. Cuando usamos la aplicación para almacenar una matriz, se producirá el siguiente error:
Cita:
Objeto de aplicación, ASP 0197 (0x80004005)
Uso de objeto no permitido
No se puede agregar objeto con el comportamiento del modelo de apartamento al objeto intrínseco de la aplicación.
Las razones específicas se pueden encontrar en la base de conocimiento de Microsoft de la siguiente manera:
Cita:
Las matrices JScript se consideran componentes COM de "apartamento". Solo los componentes del Modelo de objetos de componentes (COM) que agregan el mariscal de mariscal de roscado gratuito (FTM) se pueden asignar al alcance de la aplicación dentro de una página ASP del servidor de información de Internet (IIS) 5.0. Debido a que un componente de "apartamento" no puede agregar el FTM (no puede permitir que un puntero directo se pase a sus clientes, a diferencia de un objeto "Ambos con FTM"), las matrices JScript no agregan el FTM. Por lo tanto, las matrices JScript no se pueden asignar al alcance de la aplicación desde una página ASP.
La descripción anterior se cita de: PRB: Error cuando almacena una matriz JScript en el alcance de la aplicación en IIS 5.0
Por lo tanto, para resolver este problema, busqué una reunión importante en Google y finalmente encontré un artículo "algunas conclusiones sobre el caché para los objetos de aplicación y los colocos staticjects". Para resolver este problema, el método es usar Application.StaticObject para almacenar un objeto Scripting.Dictionary, y luego usar el objeto Scripting.Dictionary para almacenar los datos que deben almacenarse en caché.
Según esto, una clase para Operation Cache se escribe para implementar métodos PUT, GET, eliminar y borrar. Antes de usarlo, debe agregar un objeto en Global.asa:
Código de programa:
<Object id = "xbscache" runat = "server" scope = "aplicación" programa = "scripting.dictionary"> </ject>
La implementación de la clase es la siguiente:
La copia del código es la siguiente:<script language = "jscript" runat = "servidor">
/**
Título: Clase operativa de caché
Descripción: caché del sistema operativo
@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 ("XBSCache"). Elem ("Cache."+Key);
},
PUT: function (clave, datos) {
Application.lock ();
Application.StaticObjects ("xbscache"). Item ("cache."+Key) = data;
Application.unlock ();
},
eliminar: function (key) {
Application.lock ();
Application.StaticObjects ("XBSCache"). Eliminar ("Cache."+Key);
Application.unlock ();
},
claro: function () {
Application.lock ();
Application.StaticObjects ("xbscache"). Removeall ();
Application.unlock ();
}
}
</script>
De esta manera, se completa la implementación de caché cuando se usa JScript en ASP. Espero que el contenido compilado por el editor de The Error New Technology Channel pueda proporcionarle ayuda.