Primeiro de tudo, vamos dar uma olhada no processo da execução da página ASP
1. O IIS encontra um arquivo ASP e o envia ao processamento do mecanismo ASP (geralmente ASP.DLL).
2. O mecanismo abre este arquivo ASP e encontra o conteúdo entre <%e%>. Somente o conteúdo no bloco de script é analisado pelo mecanismo, e o outro conteúdo é inserido entre os blocos de script como caracteres sem sentido. É necessário explicar que, de fato, o conteúdo da análise é mais do que isso. Se você ler muitos programas, também saberá que alguns atributos Runat estão marcados como objeto <ject> do servidor.
3. O script no bloco de script do mecanismo.
<%
Dim i
Para i = 1 a 5
%> Olá, mundo!
< % Next %>
O mecanismo não analisa esses blocos de script separadamente, mas comete erros de sintaxe nos dois blocos de script. Portanto, obtemos as seguintes conclusões: nem todos os scripts não servidores serão enviados ao cliente. O servidor não deve se preocupar com a execução do script do cliente, mas você pode produzir scripts diferentes do cliente através do script do servidor.
4. O mecanismo final gera um fluxo de texto ou o resultado da execução do script. O navegador do cliente é exibido na página.
< %… %> E <script runat = server> ... </sCript>
Eles são os scripts do servidor e são processados e executados ao mesmo tempo. Quando eles executam, eram como um todo.
< %… %> E <Script Language = ...> ... </script>
O primeiro é o script do servidor, o último é o script do cliente. O primeiro é executado primeiro e o último é executado.
De fato, o script dos dois pode ser executado ao mesmo tempo, mas o espaço é diferente. O primeiro deve ser executado logicamente com antecedência. Ao mesmo tempo, também temos uma conclusão: na execução da mesma página, o script do cliente não pode ser alimentado de volta ao script do servidor de qualquer maneira, ou seja, o cliente navega pelo seu livro de mensagens e envia uma nova mensagem ou qualquer script do cliente Valor de aquisição É impossível ser processado na mesma resposta do servidor.
Ligue para componentes
Observe que os scripts do servidor e os scripts do cliente são scripts.
Se o XMLHTTP for usado para a página da web do servidor (como a coleta), ele será criado no script do servidor. cliente.
O componente Adodb.Connection é usado para acessar o banco de dados. Não há dúvida de que está no cliente do cliente criado no script final.
Em suma, coisas contraditórias e cada lado têm suas próprias características. Coisas diferentes têm contradições diferentes; Entenda não olhe ...). Esse princípio exige que aderirmos aos princípios específicos de análise de questões específicas. Oposição para usar um método para resolver as contradições de coisas diferentes. Uma chave é aberta, que tipo de montanha canta e que tipo de música é a verdade.
O objeto de criação de scripts vbscripts -vbscript usa o método server.createObject (ClassName).
Erro típico
<%
Função tsize (b)
'Esta é minha função personalizada
Tsize = China
Função final
%>
<A href = javascript: <%tsize ('variável')%>> Clique aqui para usar minha função de definição </a>
Análise de erro:
Ele confunde a diferença entre o script do servidor e o script do cliente. Durante a execução real, descobriremos que o cliente não recebe nenhum código como o TSIZE, porque o TSIZE é um programa no servidor e depois que o mecanismo é processado (observe que o processamento da função do mecanismo é puramente chamado para o servidor Script, não será que desapareceu e era impossível desempenhar um papel no cliente. Ou seja, o script do cliente não pode chamar diretamente a função de script do servidor.
De fato, este programa está errado com a gramática. Bem, altere para <%= tsize (variável)%> Não há erro gramatical no script do servidor. : JavaScript: China, China, não pode ser executado.
O efeito do script do servidor no script do cliente
Como mencionado anteriormente, o script do servidor é executado logicamente no script do cliente com antecedência, portanto, esse código é viável:
<%
Dim i
Para i = 1 a 5
Response.write <script type = text/javascript> _
& Alert ('Hello World! & I &') </sCript>
Próximo
%>
Sobre a execução da resposta.Redirect e JavaScript
Observe que a redação do código a seguir está errado:
<%
Response.Redirect Index.asp
Response.write <script type = text/javascript> _
& Alert ('Erro de senha!') </sCript>
%>
Este é um erro comum.
O motivo está relacionado ao manuseio das duas linhas de código. As duas linhas de código não podem funcionar ao mesmo tempo.
Response.Write é um texto para o cliente.
O Response.Redirect envia uma informação de cabeçalho HTTP para o cliente (qual é a informação do cabeçalho HTTP? Então, por exemplo, a escrita dos cookies do cliente é informações de cabeçalho HTTP. Navegador, é por isso que às vezes modificamos o cabo do servidor e Modifique os cookies errados, porque o sujeito começou a ser transmitido e não pode enviar informações de cabeçalho HTTP. Não importa quantos conteúdos tenham sido gravados no buffer, uma vez que a resposta. O REDIRECT for chamado, ele será chamado e será chamado. Se você rastrear dinamicamente a execução do programa, também descobriremos que, depois de chamar a resposta.Redirect, o programa para de executar, então preste atenção ao programa do servidor -lado antes de chamar a resposta.Redirect.
Então, como o exemplo acima deve ser modificado? Se você não deseja modificar o índice.asp para adicionar o prompt de script, só pode colocar as instruções de direção no script do cliente para execução, assim: assim:
<%
Response.write <script type = text/javascript> _
& Alert ('!');
%>