O AASP é um aplicativo desenvolvido pela Microsoft para substituir os programas de script CGI. Pode interagir com bancos de dados e outros programas. Aqui, o editor lhe dará algumas discussões simples. O conteúdo a seguir fala principalmente sobre os princípios essenciais do código de redação do 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:
ERRO HTTP 400 400 REALIZAÇÃO BAD Devido à sintaxe malformada, a solicitação não pôde ser entendida pelo servidor. O cliente não deve repetir a solicitação sem modificações.
A solução é usar o método de urlencode do objeto de servidor interno ASP para que a codificação de URL codifica os parâmetros de URL gerados. O exemplo é o seguinte:
<% Url = "xur.asp" var1 = "userName =" & server.urlencode ("xur") var2 = "& Company =" & server.urlencode ("xurstudio") var3 = "& telefone =" & server.urlencode ("021-53854336-186") & 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; Em seguida, defina o valor do objeto como "nada" para liberar a memória do 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 * de autores onde AU_ID <100" set conTemp = server.createObject ("adodb.connection") Conntemp.open mysn set RempyP = ConnTemp.execte ") Response.Write mysql ConntaMP.Close Set Conntemp = Nothing Response.End End If %> < %Até RSTEMP.EOF %> < %RSTEMP.MoveNext Loop RSTemp.close Definir RSTemP = Nothing Conntemp.close Defin4. Crie uma consulta SQL usando strings
O uso de strings para estabelecer consultas não acelera a velocidade de análise do servidor. Pelo contrário, também aumentará o tempo 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 = "" select * "mysql = mysql &" de editores "mysql = mysql &" where state = 'ny' "Response.Write mysql Set rstemp = Conntemp.execute (mysql) roctemp.close rstemp = 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:
<%Para i = 1 a 1000 n = i Response.Write AddSuffix (n) & "<br>" Próxima%> <%Função AddSuffix (num) Numpart = Right (num, 1) Selecione Caso NUMPT Case "1" Se Instr (Num, "11"), então NUM = num & "th" Num = num & "st" end se caso END IF CASO "3" Se Instr (num, "13"), então num = num & "th" else num = num & "rd" end se case "4" num = num & "th" caso else num NUM = num & "th" Selecione 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:
Tipo de bloqueio:
<!--#INCLUDE VIRTUAL="/ADOVBS.INC" --> <% connectme="DSN=xur;uid=xur;pwd=xur" sqltemp="select * from publishers where name='xur'" set rstemp=Server.CreateObject("adodb.Recordset") rstemp.open sqltemp, connectme, adOpenStatic, AdlockOptimstic Response.Write RSTEMP.RecordCount & "Records in <br>" & sqltemp rstemp.close Set Remstemp = Nothing %>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:
< %Subpolm_onstart Definir aplicativo ("theconn") = server.createObject ("adodb.connection") final sub %>;Isso permite que você faça referências semelhantes em qualquer código no site:
< % mysql = "Selecione * de editores onde State = 'xur' define RSTemp = Application (" theconn "). Execute (mysql) %>Da mesma forma, o objeto de conjunto de registros pode ser criado na função session_onstart
< %Subssion_onstart Set Session ("rstemp") = server.createObject ("adodb.recordset") end subp %>Então, as seguintes citações são feitas no site:
< % mysql = "Selecione * de editores onde State = 'xur' set session (" rstemp ") = ConntaMP.execute (mysql) %>No entanto, fazer isso também tem um grande impacto negativo. Como as variáveis de aplicação e sessão liberam apenas os recursos ocupados ao fechar o site, os parâmetros da sessão desperdiçarão muita memória desnecessária e, neste momento, a variável do aplicativo se torna um gargalo no desempenho do servidor.
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.
<!-#incluir virtual = "/define.asp"->
Ao introduzir páginas, é melhor não incluir <%@idioma = "vbscript"%> declaração 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 inserindo a barra de endereços (Inc é a extensão). Isso ocorre porque no servidor da web, se uma biblioteca de conexão dinâmica que resolve um determinado tipo (como o INC) não for definido, o arquivo será 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.
Através deste artigo, você tem algum entendimento da codificação do ASP? Espero que possa ajudá -lo.