Ao escrever programas ASP, para melhorar a eficiência dos programas ASP e reduzir as conexões e consultas ao banco de dados, a tecnologia de cache geralmente é usada para armazenar em cache alguns dados que precisam ser lidos no banco de dados. Em seguida, o novo canal de tecnologia errado levará você a dar uma olhada!
exemplo:
Código do programa:
A cópia do código é a seguinte:Dim RS, arr
Rs.open Conn, SQL, 1,1
arr = rs.getRows ()
Application.lock ()
Aplicação ("cache") = arr
APLICATOIN.UNLOCK ()
No VBScript, as matrizes podem ser armazenadas em objetos de aplicativo, mas se o idioma ASP for selecionado como JScript, será um pouco ruim. Quando usamos o aplicativo para armazenar uma matriz, ocorrerá o seguinte erro:
Citar:
Objeto de aplicação, ASP 0197 (0x80004005)
Não permitido usar o uso de objetos
Não é possível adicionar objeto com o comportamento do modelo de apartamento ao objeto intrínseco do aplicativo.
Os motivos específicos podem ser encontrados na base de conhecimento da Microsoft da seguinte maneira:
Citar:
As matrizes JScript são consideradas componentes com "apartamento". Somente os componentes do Modelo de Objeto do Componente (COM) que agregam o Marshaler Freeed Free (FTM) podem ser atribuídos ao escopo do aplicativo em um servidor de informações da Internet (IIS) 5.0 ASP. Como um componente de "apartamento" não pode agregar o FTM (ele não pode permitir que um ponteiro direto seja passado para seus clientes, diferentemente de um objeto "Ambos com FTM"), as matrizes JScript não agregam o FTM. Portanto, as matrizes JScript não podem ser atribuídas ao escopo do aplicativo a partir de uma página ASP.
A descrição acima é citada em: PRB: Erro quando você armazena uma matriz JScript no escopo do aplicativo no IIS 5.0
Portanto, para resolver esse problema, procurei uma grande reunião no Google e finalmente encontrei um artigo "Algumas conclusões sobre cache para objetos de aplicativo e StaticObjects". Para resolver esse problema, o método é usar o Application.staticObject para armazenar um objeto Script.Dictionary e, em seguida, usar o objeto Script.Dictionary para armazenar os dados que precisam ser armazenados em cache.
Com base nisso, uma classe para o cache de operação é gravada para implementar os métodos de put, obter, remover e limpar. Antes de usá -lo, você precisa adicionar um objeto no global.asa:
Código do programa:
<objeto id = "xbscache" runat = "server" scope = "aplicativo" program = "scripting.dictionary"> </ject>
A implementação da classe é a seguinte:
A cópia do código é a seguinte:<Script Language = "JScript" Runat = "Server">
/**
Título: Casta Operacional de Cache
Descrição: cache do sistema operacional
@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"). Item ("cache."+chave);
},
Put: function (chave, dados) {
Application.lock ();
Application.staticObjects ("xbscache"). Item ("cache."+Key) = dados;
Application.Unlock ();
},
Remover: function (chave) {
Application.lock ();
Application.staticObjects ("xbscache"). Remover ("cache."+Chave);
Application.Unlock ();
},
claro: function () {
Application.lock ();
Application.staticObjects ("xbscache"). Removeall ();
Application.Unlock ();
}
}
</script>
Dessa forma, a implementação do cache ao usar o JScript no ASP é concluída. Espero que o conteúdo compilado pelo editor do Erro New Technology Channel possa fornecer ajuda.