Recomendado: ASP implementa o envio automático de e-mails se páginas da web inexistentes Quando criamos um site, geralmente temos alguns erros nas ações ou defeitos dos visitantes em nosso site, fazendo com que uma página inexistente seja visitada. Neste momento, uma mensagem de erro 404 aparecerá. Se você é um visitante entusiasmado, pode enviar um email para lembrá -lo. Naquela época, a maioria das pessoas
Qualquer um que tenha escrito um ASP um pouco maior sabe que a sessão é realmente útil. Ele pode ser usado para registrar variáveis de dados de propriedade do usuário, que são seguras e convenientes. Mas você realmente sabe como funciona a sessão? Talvez depois de entender, você nunca ousará usar esse objeto de ódio ao ódio. Embora o método de mudar para alternativas seja um pouco problemático, após considerações de longo prazo, tenho que fazê-lo.
Primeiro, vamos falar sobre os benefícios da sessão, que podem ser usados para registrar variáveis de dados de propriedade privada do cliente e não desaparecerão dentro do intervalo de tempo. Esta é realmente uma função importante, especialmente aqueles que devem ser usados por sistemas com membros. Por exemplo, a conta de login, tempo, status e muitos dados em tempo real registrados neste registro, como o sistema de compras, registra os produtos no cesto de compras do usuário. Essas informações são necessárias em particular para cada usuário, e o desenvolvedor geralmente usa registros de sessão para processá -los.
No entanto, a sessão no ASP é composta por cookies e o servidor transmite todas as informações registradas na sessão para o navegador do usuário na forma de cookies. Geralmente, os navegadores salvam esses cookies. Sempre que o usuário clica no link e o conecta ao servidor novamente, o navegador passará esses cookies de volta ao servidor para processamento. Este é o princípio operacional da sessão. Quando a quantidade de dados é maior, eles devem ser transmitidos e coletados. Ele não apenas consome a largura de banda da linha, mas também reduz seu desempenho, porque o servidor deve gastar mais recursos em ações iniciais, como processamento on -line e reconfigurar a memória. Agora você pode pensar: "Eu tenho que usar essa função, então tenho que sacrificar um pouco". No entanto, este artigo fala sobre sessão. Por um lado, é ensinar a todos a usar menos; Por outro lado, é claro que existem alternativas. Então quem chega ao palco é o objeto de aplicação que pertence ao global.asa.
O aplicativo também é bom em registrar e processamento de dados temporários. Suas habilidades e uso em todos os aspectos são os mesmos da sessão, mas em comparação, os dados que ele registra é público, ou seja, um espaço variável que qualquer usuário pode compartilhar. O aplicativo não é como a sessão, que não passa os dados para o usuário e aguarda a próxima vez para lê -los online. Ele é gravado diretamente na memória no servidor e o desempenho é muito mais rápido que a sessão.
Como os objetos do aplicativo são públicos, a primeira coisa que deve ser feita é planejar uma área comum para cada usuário, para que cada usuário tenha sua própria área para registrar dados para alcançar o objetivo da sessão de simulação. Existem duas maneiras de fazer isso agora:
1. Inicialize e aloque o espaço de memória do usuário com antecedência quando o servidor for ativado. Geralmente, embora essa abordagem ocupe muitos recursos assim que o servidor for ligado, ela também economiza o problema de ter que alocar sempre que o usuário estiver online. No entanto, há uma limitação. O uso deste método deve limitar o número máximo de pessoas. Como é inicializado assim que for ativado, podemos apenas estimar o estabelecimento de uma certa quantidade de espaço de memória, para que esse método seja geralmente usado em pequenos programas, como salas de bate -papo.
2. Esse método deve ser considerado mais apropriado para grandes aplicações. Adota um método de alocação dinâmica. Somente quando o usuário estiver on -line para o servidor pela primeira vez, o recurso será alocado para esse usuário. O objetivo dessas duas soluções de sessão simulado é reduzir o consumo de recursos da sessão, mas, afinal, ainda é insubstituível. Ainda precisamos usar uma pequena sessão, o que pode pelo menos reduzir muita carga no servidor.
■ Primeiro plano
Primeiro, iniciamos a implementação da primeira solução. Como é para inicializar a aplicação quando ativado, é claro que devemos começar do Global.asa:
A inicialização foi concluída, mas como usá -lo? Só precisamos alterar as informações armazenadas usando sessão, como conta e tempo de login, no objeto de aplicativo que criamos, onde o usuário faz login:
| A seguir, o conteúdo citado: 'Procurando por um espaço não utilizado Para i = 1 para aplicação (clientmax) Se aplicação (user_status_ & i) = 0 então 'Número temporário do usuário sessão (índice) = i 'bloqueio Aplicativo Application.lock 'Definido para o estado usado Aplicativo (user_status_ & i) = 1 'colocado em dados variáveis Aplicativo (user_account_ & i) = conta Aplicativo (user_logtime_ & i) = agora () 'Desbloqueado Application.unlock Saída para Final se Próximo |
Para obter os dados variáveis relevantes do usuário, é como o seguinte:
Response.Write (Application (User_Account_ & Session (Index))
Você pode achar que não quer dizer não usar sessão? Então, por que a sessão existe no código original acima? Como mencionado anteriormente, essa alternativa não pode substituir completamente a sessão. O navegador nem sempre está online com o servidor. Ele será desconectado após a leitura da página. Então, como sabemos se a mesma pessoa está online na próxima vez? Neste momento, temos que confiar na sessão. Damos ao usuário um conjunto de números em tempo real. Esse número é o número do usuário no espaço variável no aplicativo. Você pode imaginar que existem muitos cofres no banco. Você tem uma chave e a chave tem um número. O número na chave permite que o operador o leve ao seu próprio cofre. Este método tem algumas melhorias, mas é suficiente para pequenas aplicações.
■ Segundo plano
Em relação à solução anterior, você também pode pensar que nosso número personalizado usa sessão para gravar. Falando em numeração, o objeto da sessão fornece um método "sessionID". É isso mesmo, não importa se queremos usá -lo ou não, o servidor ajudará automaticamente cada usuário a atribuir um número, e esse número não será repetido. Quanto a este número, ele é obtido com session.SessionId. Essa numeração é uma ação que a sessão definitivamente será executada, para que possamos usá -la para substituir o programa de numeração que nos escrevemos, o que economiza outro esforço e até tem maior expansão. Mas, basicamente, a primeira solução acima ainda é útil, como salas de bate -papo que limitam o número de pessoas e outras pequenas aplicações. A próxima segunda alternativa é para sistemas maiores.
Se um site com centenas, milhares ou até dezenas de milhares de pessoas em um site a cada segundo, definitivamente não funcionará se usar a solução anterior. Suponha que você defina o limite superior de 10.000 pessoas, uma vez ativado o servidor, ele o ajudará a cortar 10.000 áreas para se preparar para 10.000 usuários. Se houver 5 variáveis em uma região, uma variável é responsável por 32 bytes (byte) e 10.000 responsáveis por mais de 320.000 k (320 MB) e, uma vez ativado o servidor, ele encherá tanto lixo na memória, e seu desempenho será inevitavelmente reduzido muito antes de ir para o campo de batalha. E mesmo que esses números sejam muito poucos, acho que 512 Mb serão suficientes, o número acima é considerado um número mínimo e não se sabe quantos recursos o servidor usará ao configurar a memória, portanto, será mais mais e não menor. Portanto, a solução é configurar dinamicamente o espaço variável do usuário e cortar uma área quando um usuário estiver online com o servidor; portanto, não há necessidade de configurar uma memória enorme com antecedência.
A segunda solução é relativamente simples de fazer. Jogue fora todas as coisas na primeira solução. Não precisamos mudar para o Global.asa, só precisamos alterar o login do usuário e outros lugares úteis:
| A seguir, o conteúdo citado: Lock ApplicationApplication.lock 'Cut variável dados Aplicativo (user_account_ & session.sessionId) = conta Aplicativo (user_logtime_ & session.sessionId) = agora () 'desbloqueio desbloquear aplicativo.unlock |
Para obter os dados variáveis relevantes do usuário, é como o seguinte:
Response.Write (Application (user_account_ & session.sessionId))
No passado, li muitos livros que diziam que era muito difícil comer recursos, então tente não usá -los, mas ainda tenho que usá -los quando precisar, e os livros não ensinaram uma solução mais apropriada. Agora, quando você entender como substituir a sessão, faça bom uso! Talvez os problemas de eficiência que estão sempre perturbados possam ser muito aprimorados!
Compartilhar: Escreva um programa pop-up mais fácil de usar com ASP Exemplo de ASP: use ASP para escrever um programa pop-up mais fácil de usar para nos ajudar a criar um método de investigação que não anona. O uso de janelas pop-up para exibir questionários é considerado a maneira mais conveniente e rápida de coletar informações do usuário. Depois que o primeiro questionário é produzido