Dica um: Melhore a eficiência do uso da coleção Request
? Acessar uma coleção ASP para extrair um valor é um processo demorado e que consome muitos recursos computacionais. Como esta operação envolve uma série de pesquisas em coleções relacionadas, ela é muito mais lenta do que acessar uma variável local. Portanto, se você planeja usar um valor na coleção Request diversas vezes na página, considere armazená-lo como uma variável local. Por exemplo, escreva o código no seguinte formato para acelerar o processamento do mecanismo de script:
strTitle=Request.Form("Title")
strPrimeiroNome=Request.Form("Nome")
strLastName=Request.Form("Sobrenome")
Se Len(strTitle) Então strTitle=strTitle & " "
Se strPrimeiroNome="" Então strFullName=strTítulo & " " & strLastName
Elseif Len(strPrimeiroNome)=1 Então
strFullName=strTítulo & strNome & ". " & strSobrenome
Outro
strFullName=strTítulo & strNome & " " & strSobrenome
Terminar se
??Dica 2: acesse diretamente a coleção apropriada
??Se você não tiver escolha, não use strPage=Request("page") para obter parâmetros, pois isso pesquisará todas as coleções em ordem - QueryString, Form, Cookies, ClientCertificate, ServerVarible até que o nome do primeiro valor correspondente seja encontrado. Fazer isso é menos eficiente do que acessar diretamente a coleção apropriada e não é seguro, a menos que haja garantia absoluta de que o valor não aparecerá em outra coleção.
Por exemplo, você pode querer procurar o nome de um servidor WEB que atenda à solicitação de um cliente. Isso é feito procurando por "SERVER_NAME" na coleção Request.ServerVarables que aparece em cada consulta. No entanto, se outras coleções também contiverem valores chamados "SERVER_NAME" (os nomes das chaves não diferenciam maiúsculas de minúsculas), você obterá resultados incorretos ao usar Request("server_Name"). Em resumo, a coleção apropriada deve ser acessada diretamente sempre que possível.
?? Dica 3: Use a propriedade Response.IsClientConnected antes de operações demoradas
?? Usar Response.IsClientConnected é uma forma útil de observar se o usuário ainda está conectado ao servidor e carregando a página web criada pelo ASP. Se o usuário desconectar ou parar de baixar, não precisaremos mais desperdiçar recursos do servidor criando a página web porque o conteúdo do buffer será descartado pelo IIS. Então, para páginas que exigem muito tempo de cálculo ou utilizam muitos recursos, vale verificar em todas as etapas se o visitante está offline:
… Código para criar a primeira parte da página
Se Response.IsClientConnected então
Resposta.Flush
Outro
Resposta.Fim
Terminar se
...... Código para criar a próxima parte da página
?? Dica 4: Otimize as operações ADO em ASP
?? Portanto, é muito útil otimizar as operações ADO para acelerar a execução do código ASP:
??a. Selecione apenas as colunas necessárias: Ao abrir um conjunto de registros ADO, você não deve usar automaticamente o nome da tabela (ou seja, SELECT *), a menos que precise obter todas as colunas. Usar colunas separadas significa que a quantidade de dados enviados ou obtidos do servidor é reduzida. Mesmo que você precise usar todas as colunas, nomear cada coluna individualmente proporcionará o melhor desempenho, pois o servidor não precisa interpretar os nomes das colunas.
??b. Use procedimentos armazenados tanto quanto possível. Os procedimentos armazenados são programas pré-compilados que contêm um plano de execução preparado, portanto, são executados mais rapidamente do que as instruções SQL.
??c. Use cursor apropriado e padrões de bloqueio. Se tudo o que você fizer for ler dados do conjunto de registros e exibi-los na tela, use o conjunto de registros padrão somente encaminhamento e somente leitura. Quanto menos trabalho o ADO tiver para manter os detalhes dos registros e bloqueios, maior será o desempenho que ele executa.
??d. Use variáveis de objeto. Uma maneira segura de melhorar o desempenho ao iterar em um conjunto de registros é usar variáveis de objeto para apontar para membros da coleção. Por exemplo:
Embora não seja RsGc.EOF
Response.Write "Nome do projeto:" & RsGc("GcMC") & "(Código do projeto: " & RsGc("GcCode") & ")
"
RsGc.MoveNext
Wend
pode ser reescrito como o seguinte código para acelerar a execução:
set GcMc=RsGc("GcMc")
definir GcCode=RsGc("GcCode")
Embora não seja rsGc.EOF Response.Write "Nome do projeto:" & GcMc & "(código do projeto:" & GcCode & ")
" RsGc.MoveNext
Wend
?? O novo código estabelece uma referência à variável do objeto, então a variável do objeto pode ser usada em vez da variável real, o que significa que o mecanismo de script tem menos trabalho porque há menos índices na coleção.
??Dica 5: Não misture mecanismos de script
??Sabemos que tanto VBScript quanto JScript podem ser usados em páginas ASP. Mas não é aconselhável usar JScript e VBScript ao mesmo tempo na mesma página. Como o servidor deve instanciar e tentar armazenar em cache dois mecanismos de script (em vez de um), isso aumenta até certo ponto a carga no sistema. Portanto, por motivos de desempenho, você não deve misturar vários mecanismos de script na mesma página.