Otimização de ASP, tecnologia de cache asp
1. O que é o cache asp/por que cache
Quando seu site é estabelecido nos primeiros dias da tecnologia ASP, você pode sentir a conveniência trazida pela tecnologia dinâmica da Web ASP, bem como pelo controle HTTP modificado e gratuito aleatório. No entanto, à medida que o número de visitas aumenta, você definitivamente descobrirá que o acesso ao seu site está ficando mais mais lento, e o IIS tem cada vez mais frequente. Em seguida, você deve otimizar o ASP, como substituir mais bons bancos de dados, estabelecer índices, escrever procedimentos de armazenamento e assim por diante. Algumas dessas medidas não precisam aumentar a pressão de custo, enquanto parte da pressão de custo (como acesso ao cluster ao SQL) e o efeito não é necessariamente.
Enfrentando a pressão do acesso à Web, acho que o método mais econômico é usar a tecnologia de otimização de cache para aliviar a pressão de serviço da Web.
O aumento do volume de acesso à Web geralmente significa o rápido crescimento da seguinte demanda de recursos:
1. Aumento do tráfego de cartões de rede, é necessário consumir mais tráfego de processamento de CPU e threads de E/S de rede.
2. É necessário abrir/fechar a conexão com o banco de dados com mais frequência (se a tecnologia do banco de dados for usada -geralmente o ASP usará o banco de dados como armazenamento de dados), o número de coisas que consomem seriamente recursos e o impasse causado pelos recursos concorrentes de Transações, que aumentarão a E/S da rede.
3. Se a sessão for usada, o IIS consumirá mais memória para manter o status e o consumo de memória pode causar memória física insuficiente, causar troca frequente entre a memória física e a memória auxiliar, o que faz com que a execução do código pare
4. Devido à resposta oportuna do acesso, a falha de acesso à página da web será causada, o que fará com que os usuários atualizem, exacerbando assim as necessidades das CPUs, memória e outros recursos.
De fato, considerando o aplicativo web usual, muitas vezes a execução dinâmica do código é desnecessária.
2. Classificação do cache asp
Resumindo sem autorização, o cache do ASP pode ser dividido em duas categorias:
1. Cache do arquivo
O cache de arquivo chamado é julgar de acordo com o julgamento lógico. Pode acessar o arquivo estático do redirecionamento da Web para a tecnologia, para atender às necessidades de reduzir as CPUs, recursos do banco de dados. Existem muitos aplicativos desses. O Castle tem um efeito colateral (benefício) -isso pode ser facilmente incluído por mecanismos de pesquisa como o Google. Alguns sistemas de comunicado de imprensa tão chamados adotaram essa tecnologia.
2. Cache de quebra de filme de arquivo
O cache de arquivo chamado também é baseado no julgamento lógico. Dados na forma de arquivos. Por exemplo, geralmente armazenamos alguns dados no formato XML e, em seguida, usamos a tecnologia XSLT para implementar a exibição (o processamento XML geralmente requer uma grande quantidade de recursos da CPU; portanto, o IE geralmente lê o XML diretamente para o cliente para lidar com a CPU do cliente). É assim que o fórum da CSDN é processado.
3. Cache de memória principal
Além disso, você também pode considerar lidar com o cache na memória e armazenar o conteúdo que precisa responder em tempo hábil na memória. Se um grande número de necessidades de acesso estiver concentrado em várias páginas pequenas ou armazenamento principal, quero usar o cache de memória principal para melhorar bastante o desempenho do acesso à Web.
3. Como alcançar/usar cache
As questões a seguir precisam ser consideradas para implementar o cache:
1. Quais páginas não mudarão em pouco tempo?
Analise seu próprio site, existem muitas páginas. Por exemplo, um site geralmente possui colunas de notícias e informações. Em seguida, essas páginas são adequadas para cache com arquivos estáticos. De fato, o sistema de comunicado de imprensa chamado é feito, para que você também possa consultar as idéias desses sistemas para transformar sua página dinâmica de ASP original.
2. Essas páginas são geradas para todas as visitas para gerar a mesma lógica (ou seja, não distinguir entre visitantes).
Exceto pelas colunas como notícias e informações, todos os visitantes analisam uma interface, e a aplicação de recursos como fóruns e outros recursos de consumo geralmente pode ser projetada como uma geração lógica unificada (o mesmo post, Zhang Sanli e Sisi são os mesmos ). Você também pode considerar quebrar os dados e usar a tecnologia de script, além da capacidade de processamento do servidor, ou seja, o navegador do cliente para processamento.
3. Use o custo e a colheita do cache.
Principalmente o tempo para as mudanças no espaço (resposta). Use a tecnologia de cache para pré -processar o conteúdo frequentemente necessário para melhorar a capacidade de resposta do servidor da Web e, mais importante, ganhar o favor dos visitantes.
O preço é que a demanda por espaço na web aumenta e pode afetar o efeito de acesso.
Mas acho que o cache adequado é maior que as desvantagens.
4. Em vez de usar o cache nesses lugares
A página de consulta dinâmica, o conteúdo de consulta de cada pessoa é diferente; portanto, os resultados da tela não são os mesmos, por isso é improvável que gerem o cache do resultado da consulta; portanto, o cache é mais complicado e na parte inferior da taxa de utilização do cache, resultando em O custo da gestão.
Quarto, análise de instância
Suponha que o layout original de um fórum de sugestão seja o seguinte:
No diretório raiz:
Página inicial padrão, geralmente essência, recomendação e similares
Listborad.asp Este arquivo lista os nomes e a introdução de todas as colunas.
Listthread.asp O arquivo não carrega nenhum parâmetros para indicar todos os adesivos e carregar o Mainbid para representar todos os adesivos de uma determinada peça. Se o subbid for transportado para indicar o post da coluna específica. Se você carregar o parâmetro da página para indicar a paginação do tópico.
ViewThread.asp lista um determinado conteúdo do adesivo. Assumimos que as postagens são exibidas como um discurso e todos seguem os adesivos estão listados para trás. O parâmetro ID é a postagem a ser exibida.
Responder.asp responde a uma determinada postagem, carregue o ID do parâmetro para responder a uma determinada postagem
Nenhuma outra discussão.
Acima, podemos ver que, se todos eles forem feitos usando o ASP/PHP original, a execução de quase todos os arquivos ASP requer operações de banco de dados, consulta frequente e várias consultas. Deve -se saber que o banco de dados de consulta acabará por causar um declínio no desempenho, a velocidade de resposta diminui e o impacto lento da navegação nos visitantes não será propício à qualidade da web. Mais importante, para as duas pessoas em A e B, elas visitaram o ViewThread.asp e similar Isso para isso no mesmo conteúdo, o servidor precisa abrir a conexão do banco de dados, consultar, ler registros e mostrar que os registros e conexões de banco de dados estão fechados. Essência Essência Essência Se mais pessoas são acessadas por mais pessoas, o resultado final é que essas pessoas exacerbam os recursos do servidor. De fato, o trabalho duplicado para o mesmo conteúdo pode ser otimizado com a tecnologia de cache. por exemplo:
Depois de enviar o conteúdo do repy.asp, chamamos imediatamente a função estática para gerar o conteúdo estático para os arquivos HTML estáticos, como o ViewThread_xxxx.htm e, ao visitar o ViewThread.asp? o arquivo estático correspondente ViewThreadxxxx.htm. Dessa forma, quando uma postagem não é mais recente, ele é sempre fornecido ao conteúdo estático do visualizador;
Listborad.asp também pode implementar estático. Podemos analisar os parâmetros que podem ser transportados, defina o nome do arquivo de cache como listboard_xx.htm e atualize o listboard_xxx.htm ao adicionar uma nova coluna. ListThread.asp é semelhante, mas, devido a mais parâmetros, haverá muitos arquivos de cache. Se você deseja cache listThread.asp? O mesmo se aplica ao padrão.asp.
Então, como julgar quando atualizar? A que horas atualizar?
讨论 listThread.asp? Arquivo estático. Observe que nenhuma existência aqui significa que o surgimento de um novo conteúdo exige que atualizemos.
Como os arquivos não podem existir? excluir. Podemos excluir todos os arquivos estáticos, como listthread_xxx_p2.htm, ao publicar um novo adesivo, excluir adesivos e mover adesivos. Dessa forma, o cache é notificado.
Ainda resta um problema agora, como gerar arquivos estáticos?
Percebemos que o mesmo conteúdo mencionamos antes.我们可以将改造前的 default.asp 、 listThread.asp 等拷贝一个副本 , 取名为 default_d.asp 、 listThread_2.asp , 且在同一个目录中 (理论上 listthtrad.asp? Subid = 123 同 listThread_d.asp? Os resultados de acesso de subid = 123 serão o mesmo conteúdo), de modo que, na lógica da necessidade de gerar arquivos estáticos, chamamos a cópia antes da modificação pela solicitação de acesso à Web, obtenha o código HTML e o armazenamos como um arquivo estático. Essa solicitação da Web é realmente equivalente antes de qualquer visualizador real acessar o conteúdo estático, o próprio servidor é inspecionado pelo HTML que será emitido e, em seguida, retornará esse código para armazenar a função de operação do arquivo como um arquivo estático. Dessa forma, o arquivo de cache foi criado antes do visualizador real.
Esse esquema quase não toca no layout original e dificilmente causará erros como 404 devido à transformação. Em segundo lugar, os arquivos estáticos também ajudarão seu site a ser facilmente incluído por mecanismos de pesquisa como o Google. Por que não?
Por fim, lembre que, através do acesso da Web, no ambiente de programação ASP, muitas pessoas usam componentes XMLHTTP para acessar, o que causará muitos problemas. O recurso que o XMLHTTP em próprio cache as solicitações de cache, resultando no conteúdo obtido por nossas solicitações através desse componente, causando confusão lógica. Portanto, você deve escolher objetos HTTP do XML Server ou componentes WINHTTP para implementar recursos de solicitação da Web.
Usando a tecnologia de cache no ASP, pode melhorar o desempenho do seu site.
Antes de introduzir essas tecnologias, vamos explicar qual é a tecnologia de cache do ASP.
O cache SO -SO -FACKED está realmente abrindo um espaço para salvar dados na memória. Depois de executar uma ação de consulta e colocar os resultados da consulta no cache, você pode visitar rapidamente os dados rapidamente. E se você não colocar os dados no cache, quando você executa esta consulta novamente, o servidor consome o processo do banco de dados e o classificou.
Quando os dados são armazenados no cache, o tempo necessário para a consulta novamente é principalmente no momento da exibição dos dados.
Em outras palavras, não devemos colocar os dados que geralmente precisam alterar o cache do servidor.
Agora, discutimos a técnica de usar o ASP no servidor.
Tecnologia de cache.
Quando você tem muitos dados (estáticos, ou seja, menos alterações) precisam ser exibidos para o cliente, você pode considerar o uso da tecnologia de cache no servidor. Essa tecnologia é particularmente adequada para os sites com forte consistência no estilo de exibição (Huh, para sites não -formados, não é fácil de usar.)
De fato, o método de implementação é particularmente simples.
Este é um exemplo para exibir classificação de livros
FILE DOISS DILITAS.ASP:
< %@ Idioma = javas
CRIPD %>
<html>
<Body>
<Form Method = Post>
Classificação do livro;
<p>
<Tipo de entrada = Enviar>
< %
Function getBooksListBox () ()
{{
BooksListBox = Aplicativo (BookSListBox)
if (booksListBox! = NULL) retorna booksListBox;
Crlf = string.FromCharcode (13, 10)
BooksListBox = <Selecione Nome = Books> + CRLF;
Sql = selecione * FROM LIVROS ORDEM POR NOME;
CNNBooks = server.createObject (adodb.connection);
CNNBooks.open (livros, admin,);
rstbooks = cnnbooks.execute (SQL);
FldBookName = rstbooks (bookname);
While (! Rstbooks.eof) {
BooksListBox = BooksListBox + <pution> +
FLDBOOKNAME + + CRLF;
rstbooks.movenext ();
}
BooksListBox = BooksListBox +
Aplicativo (BooksListBox) = BooksListBox
Retornar bookslistbox;
}
%>
É muito simples, de fato, usa uma tecnologia de aplicativos muito simples, e a diferença está em uma frase:
Aplicativo (BooksListBox) = BooksListBox
Você pode verificar se o número de solicitações no servidor será muito reduzido. Essa situação é particularmente adequada para sites que não são muito frequentes, pois essas atualizações, como você é atualizado apenas uma vez (ou um longo tempo).
Vamos discutir uma tecnologia de cache do cliente. Essa tecnologia é usada principalmente para salvar informações pessoais do usuário, como senhas de usuário, códigos de código etc. Ele usa principalmente alguns atributos de ADO. Ao mesmo tempo, alguns internautas mencionaram se as perguntas que podem usar objetos ADO na aplicação. A explicação não está clara, deixe o código falar abaixo:
Arquivo global.asa:
<!
Arquivos/System/Ado/Msado15.dll->
<idioma de script = vbscript runat = servidor>
Subpplication_onstart
Sql = selecione nome de usuário, senha do userInfo
CNNUSERS = DSN = Usuário
Set rsusers = server.createObject (adodb.recordset)
'Observe que as duas frases a seguir são usadas para alcançar a tecnologia ADO disponível para desconectar conexões
Rscsomomomersorsorlocation = aduseclient
rscosomers.open sql, cnnadvworks, adoenstatic, adlockreadonly
'Quebrando a conexão do registro e o banco de dados
rScosomers.ActiveConnection = nada
Definir aplicativo (rScustomers) = rScustomers
Final sub
FILE Users.asp
< %
'O método clone faz com que cada usuário tenha uma coleção de registros
Definir os seus = Application (RSUSERS) .clone
Definir nome de usuário = YourUsers (nome de usuário)
Definir senha = YourUsers (senha)
Unil seus proprietários.eof
%>
Nome do usuário: < % = nome de usuário %> Senha do usuário: < % = senha %>
< %
YouSusers.movenext
Laço
%>