ASP (Página do servidor Active) é uma tecnologia dinâmica de desenvolvimento de páginas da web com base na plataforma PWS (servidor da web pessoal) e IIS (Internet Information Server) lançada pela Microsoft, que agora está se tornando mais madura e perfeita. Aqui temos apenas algumas discussões simples sobre otimização de código.
8 Técnicas de otimização de codificação ASP:
1. Declare as variáveis VBScript
No ASP, o VBScript recebe um forte suporte e pode integrar perfeitamente as funções e métodos do VBScript, que fornecem grande conveniência para estender as funções existentes do ASP. Como o conceito de tipos de variáveis foi borrado no ASP, muitos programadores estão acostumados a não declarar variáveis VBScript durante a interação entre asp e VBScript, o que aumenta a carga de análise do servidor e, portanto, afeta a velocidade de solicitação de resposta do servidor.
Em vista disso, podemos forçar o usuário a executar declarações variáveis no VBScript, assim como forçamos o usuário a executar declarações variáveis no VB. O método de implementação é colocar <% opção explícita%> no início da linha do programa ASP.
2. Encoda o endereço da URL
Quando usamos o ASP para gerar dinamicamente um endereço de URL com parâmetros e saltar, é normal analisar no IE, mas ao navegar no NetScrape, há erros da seguinte forma:
- Httperror400
- 400badrequest
- Duetomalformedsyntax, a sequência não poderia ser observar por TheServer.
- O objetivo deve ser notado que não seja modificando as modificações.
A solução é usar o método URLENCODE do objeto de servidor interno ASP para que a codificação de URL codifica os parâmetros de URL gerados.
- <%
- Url = xur.asp
- var1 = nome de usuário = & server.urlencode (xur)
- var2 = & Company = & Server.urlencode (Xurstudio)
- var3 = & telefone = & server.urlencode (021-53854336-186)
- Response.RedirecTurl &? & Var1 & Var2 & Var3
- %>
3. Limpe o objeto
Depois de usar o objeto, primeiro use o método de fechamento para liberar os recursos do sistema ocupados pelo objeto; Naquela época, eu bati meu IIS criando mais de 100 registros em uma página sem objetos claros. O código a seguir usa o conteúdo do banco de dados para criar uma lista suspensa. O exemplo do código é o seguinte:
- <%mydsn = dsn = xur; uid = xur; pwd = xur
- mysql = selecione*Fromauthorswhereau_id < 100
- setConNTemp = server.createObject (adodb.connection)
- Conntamp.openmydsn
- setRstemp = ConntaMP.Execute (MySQL)
- IFRSTEMP.EOFEN
- O banco de dados de resposta.write está vazio
- Response.WritemySQL
- Conntamp.close
- setConNTEMP = nada
- resposta.END
- endif%>
- <%DountilRemp.eof%>
- <%
- RSTEMP.MoveNext
- laço
- RSTEMP.CLOSE
- SetRstemp = nada
- Conntamp.close
- setConNTEMP = nada
- %>
4. Crie uma consulta SQL usando strings
O uso de strings para estabelecer consultas não acelera a velocidade de análise do servidor. Mas ainda é recomendável usar strings em vez de instruções simples de consulta para consultar. A vantagem disso é que ele pode descobrir rapidamente o problema do programa, facilitando e gerando com eficiência o programa. Exemplos são os seguintes:
- <%mysql = selecione*
- mysql = mysql & fromempublishers
- mysql = mysql & wherestate = 'ny'
- Response.WritemySQL
- setRstemp = ConntaMP.Execute (MySQL)
- RSTEMP.CLOSE
- SetRstemp = nada
- %>
5. Use Case para selecionar a condição
Ao fazer seleção condicional, tente usar as instruções de caso e evite usar as instruções if. O uso de instruções de caso pode tornar o programa fluido e executar mais rápido do que as instruções se. Exemplos são os seguintes:
- <%
- Fori = 1to1000
- n = i
- Response.WriteAddsuffix (n) & <br>
- PRÓXIMO
- %>
- <%
- FunctionAddsuffix (num)
- NUMPART = Right (num, 1)
- SelectCasenumpart
- Case1
- Ifinstr (num, 11) então
- num = num & th
- OUTRO
- num = num & st
- Endif
- Case2
- Ifinstr (num, 12) então
- num = num & th
- OUTRO
- num = num & nd
- Endif
- Case3
- Ifinstr (num, 13) então
- num = num & th
- OUTRO
- num = num & rd
- Endif
- Case4
- num = num & th
- Caseelse
- num = num & th
- EndSelect
- AddSuffix = num
- Função final
- %>
6. Use Constantes definidas no arquivo Adovbs.inc para abrir o conjunto de registros
Ao abrir um conjunto de registros, você pode definir o tipo de cursor e o tipo de bloqueio que o conjunto de registros é aberto. Existem algumas constantes definidas no arquivo Adovbs.inc para definir esses tipos. O arquivo Adovbs.inc é salvo no diretório/inetpub/iissamples/iisamples. Abaixo estão alguns tipos de cursor e bloqueio comumente usados.
Tipo de cursor: o cursor ADOWONFOWONLY pode avançar; por outros usuários.
Tipo de bloqueio: AdlockReadOney não pode modificar os registros no conjunto de registros;
- <!-#incluir virtual =/Adovbs.inc->
- <%
- ConnectMe = dsn = xur; uid = xur; pwd = xur
- SQLTemp = Selecione*FromMpublisherswheRename = 'xur'
- setRstemp = server.createObject (adodb.recordset)
- RSTEMP.OPENSQLTEMP, CONNECTME, ADOWENSTATIC, AdlockOptimstic
- Response.writerstemp.recordCount & Recordsin <br> & sqltemp
- RSTEMP.CLOSE
- SetRstemp = nada
- %>
7. Evite a definição de objeto no arquivo global.asa
Como o conteúdo do arquivo global.ASA pode ser referenciado por todos os arquivos no site, sem dúvida, definir objetos no arquivo global.asa pode economizar muita duplicação. Por exemplo, na função Application_onstart em global.asa, é feita a seguinte definição:
- <%Subapplication_Onstart
- Stapplication (theconn) = server.createObject (adodb.connection)
- Endub%>;
Isso permite que você faça referências semelhantes em qualquer código no site:
- <%
- mysql = selecione*FromMpublishersWherestate = 'xur'
- setRstemp = Application (TheConn) .Execute (MySQL)
- %>
Da mesma forma, o objeto de conjunto de registros pode ser criado na função session_onstart
- <%subsession_onstart
- SetSession (RSTEMP) = server.createObject (adodb.recordset)
- Endub%>
Então, as seguintes citações são feitas no site:
- <%
- mysql = selecione*FromMpublishersWherestate = 'xur'
- SetSession (RSTEMP) = CONNTEMP.EXECUTE (MYSQL)
- %>
No entanto, fazer isso também tem um grande impacto negativo. desempenho. .
Solução: Crie uma página ASP para definir objetos e introduza esta página ASP na página em que esses objetos precisam ser chamados. Supondo que o nome da página do ASP do objeto definido seja definido. ASP, a página pode ser introduzida adicionando a seguinte instrução à página ASP correspondente.
Ao introduzir páginas, é melhor não incluir a instrução <%@idioma = vbscript%> no arquivo ASP a ser introduzido. Porque no arquivo ASP, pode haver apenas uma linguagem de análise de script definida por @.
8. Proteção à segurança
O ASP fornece um bom mecanismo de proteção de código e todo o código ASP é executado no lado do servidor e retorna apenas o resultado da execução do código do cliente. Mesmo assim, na versão antiga do IIS, você pode visualizar o código -fonte do ASP após o nome do arquivo :: $ dados, que já se enquadram no escopo da segurança do servidor da web e não estão dentro do escopo deste artigo. A seguir, são apresentadas duas precauções de segurança simples.
Embora seja recomendável introduzir arquivos com o INC ASP como extensão, ainda é recomendável usar o ASP como extensão para introduzir arquivos aqui. Quando esses códigos são executados em um servidor da Web com um mecanismo de segurança ruim, você pode navegar no conteúdo do arquivo importado, simplesmente digitando a barra de endereços (Inc é a extensão). Tipo (como inc) não é definido, o arquivo é exibido no código -fonte.
Não coloque o arquivo de banco de dados dentro da estrutura do site, para que, quando uma pessoa maliciosa obtenha o caminho do banco de dados, ele possa obter facilmente o banco de dados e alterar o conteúdo do banco de dados arbitrariamente. Uma abordagem melhor é estabelecer um DSN (nome da fonte de data) para o banco de dados e acessar o DSN diretamente ao acessar o banco de dados.
Cada uma das oito técnicas de otimização de codificação do ASP acima é muito importante e exige que todos o experimentem cuidadosamente e verdadeiramente o entendam para se tornarem suas próprias coisas.