Recomendado: como formatar a paginação e data do ASP para o formato RFC822 Calcule a página, hehe, você não precisa julgar o seguinte conteúdo referenciado: intnumpage = abs (int (-(intnumRecord/intperpage))) formato a data
Se a sala do computador estiver prestes a fechar, ou se você estiver com pressa até namorar um mm, pule diretamente para o quarto parágrafo.
Os scripts descritos abaixo incluem scripts do lado do servidor e scripts do lado do cliente. Os scripts do lado do servidor referem-se à parte dos scripts em execução no servidor. Por exemplo, a resposta comum. O escrito é obviamente executado no servidor. Os scripts do lado do servidor podem ser gravados em idiomas VBScript e JScript. Neste artigo, o VBScript é usado, o JScript é o mesmo princípio.
Os scripts do cliente também podem ser considerados para incluir dois idiomas: VBScript e JavaScript, que são idiomas de script que são executados nos navegadores do cliente. Por exemplo, quando visitamos uma página da web, uma caixa de mensagem aparece, o que é feito usando scripts cliente (alerta, msgbox, etc.), e obviamente não é algo que os scripts do lado do servidor podem fazer. Há uma grande diferença entre os scripts do cliente e os scripts do servidor (em navegadores como IE e Firefox), ou seja, os scripts do cliente podem acessar o Modelo de Objeto do Documento (DOM) e operar objetos na página (como modificar o título da página, modificar o atributo innerHtml de uma div, etc.).
Primeiro, vamos entender o processo de execução da página asp
1.Iis encontra o arquivo ASP e o envia ao mecanismo ASP (geralmente asp.dll) para processamento.
2. O mecanismo abre esse arquivo ASP e encontra o conteúdo entre < % e %> e, é claro, o conteúdo entre <script runat = server> e o </sCript> correspondente. Esses conteúdos são chamados de blocos de script. Somente o conteúdo no bloco de script é analisado pelo mecanismo, e o outro conteúdo é ignorado e é inserido entre os blocos de script como caracteres sem sentido. É necessário esclarecer que, de fato, há mais do que esse conteúdo sendo analisado. O lado do servidor incluiu arquivos da classe <!-#incluir ***-> também estão incluídos e processados pelo mecanismo. Se você ler mais programas, também saberá que alguns objetos <ject> marcados como servidor com atributo RUNAT também serão processados, para não discutirá isso em profundidade aqui.
3. O motor executa scripts no bloco de script. Esses scripts do lado do servidor são executados como um todo, ou seja, o seguinte código pode ser escrito:
| A seguir, o conteúdo citado: <% Dim i Para i = 1 a 5 %> Olá, mundo! < % A seguir %> |
O motor não analisa esses blocos de script separadamente, fazendo com que os erros de sintaxe ocorram nos dois blocos de script. Portanto, chegamos à seguinte conclusão: nem todo o código de script não servidor será enviado ao cliente e é possível que esse código de script não servidor seja restrito pelo bloco de script. O servidor definitivamente não se preocupará com a execução de scripts do cliente, mas diferentes scripts do cliente podem ser emitidos por meio de scripts do servidor.
4. No final, o motor gera um fluxo de texto ou o resultado da execução do script, que pode ser considerado como uma string, que é o código enviado para a página da web do navegador do cliente. O navegador do cliente exibe a página. No momento, o código-fonte (arquivo de origem) da página não contém scripts do lado do servidor, mas contém o resultado da execução de scripts do lado do servidor (isso é óbvio).
< %… %> E <script runat = server>… </sCript>
São todos os scripts do lado do servidor que são processados e executados ao mesmo tempo. Eles são executados como um todo.
< %… %> E <Script Language =…>… </script>
O primeiro é um script do lado do servidor, e o último é um script do lado do cliente. O primeiro é executado primeiro, e o último é executado posteriormente.
De fato, não é totalmente verdadeiro. Os scripts dos dois podem ser executados ao mesmo tempo, mas o espaço é diferente, e ainda é: o primeiro é executado no servidor e o último é executado no navegador do cliente. O primeiro deve ser executado logicamente com antecedência pelo último. Ao mesmo tempo, também concluímos que, durante a execução da mesma página, o script do cliente não pode ser alimentado de volta ao script do servidor de forma alguma. Ou seja, o cliente navega seu livro de mensagens e envia uma nova mensagem, ou o valor obtido por qualquer script do cliente não pode ser processado na mesma resposta do servidor.
Sobre a chamada do componente
Observe que os scripts do lado do servidor e os scripts do lado do cliente são ambos os scripts, para que você possa criar naturalmente componentes XMLHTTP, componentes adodb.Connection, etc., mas não em qualquer lugar.
Se o XMLHTTP for usado para rastrear páginas da web (como coleção) no servidor, ele deverá ser criado no script do servidor. Se for usado para Ajax para o cliente e o back -end acessa as páginas no servidor sem atualização, ele é executado no cliente e criado naturalmente no cliente.
O componente Adodb.Connection é usado para acessar o banco de dados. Geralmente, é criado no lado do servidor. Afinal, o programa ASP do lado do servidor está executando os dados do banco de dados. No entanto, se o seu banco de dados estiver realmente conectado ao cliente (como http://bbs.bccn.net/thread-224966-1-2.html), ele é sem dúvida criado no script cliente.
Em suma, coisas contraditórias e seus respectivos aspectos têm suas próprias características. Coisas diferentes têm contradições diferentes; O mesmo tem contradições diferentes em diferentes processos e estágios de desenvolvimento; As diferentes contradições da mesma coisa e os dois aspectos diferentes da mesma contradição têm suas próprias características (se você não conseguir entendê -las, pode ignorá -las ...). Esse princípio exige que aderirmos ao princípio de análise específica de problemas específicos e, sob a orientação do princípio da universalidade das contradições, devemos analisar especificamente a particularidade das contradições e encontrar a maneira correta de resolvê -las. Opor-se à adoção do mesmo tamanho de um método para resolver as contradições entre coisas diferentes. É isso que você diz quando abre uma chave e canta uma música quando vai para a montanha.
O script VBScript do lado do servidor usa o método Server.CreateObject (ClassName) para criar objetos, e o script VBScript do lado do cliente usa o método CreateObject (ClassName) para criar objetos.
Erro típico
| A seguir, o conteúdo citado: <% Função tsize (b) 'Esta é minha função personalizada Tsize = China Função final %> <a href = javascript: <%tsize ('variável')%>> Clique aqui para usar a função que defini </a> (http://bbs.bccn.net/thread-225244-1-1.html) |
Análise de erro:
Confunde a diferença entre scripts do lado do servidor e scripts do lado do cliente. Ao realmente executar, descobriremos que o cliente não recebe nenhum código como o TSize, porque o TSIZE é um programa do lado do servidor. Depois de ser processado pelo mecanismo (observe que o processamento de funções do mecanismo é puramente chamado pelo script do lado do servidor e não será enviado de volta ao cliente) e ele desaparecerá e não poderá funcionar no cliente. Isso significa que os scripts do cliente não podem chamar diretamente as funções dos scripts do lado do servidor.
De fato, este programa possui erros de sintaxe. Quando o mecanismo processa esse conteúdo, primeiro encontra o conteúdo entre <%e%>, ou seja, <%tsize ('variável')%>. Obviamente, esse conteúdo não cumpre as regras de sintaxe do VBScript. Bem, alterando-o para <%= tsize (variável)%> Não há erro de sintaxe no script do lado do servidor. Neste momento, a função TSize pode retornar o valor à China normalmente; portanto, o atributo HREF recebido pelo cliente é escrito assim: JavaScript: China, ele não pode ser executado.
O impacto dos scripts do lado do servidor nos scripts do lado do cliente
Como mencionado anteriormente, os scripts do lado do servidor são executados logicamente antes dos scripts do lado do cliente, portanto esse código é viável:
| A seguir, o conteúdo citado: <% Dim i Para i = 1 a 5 Response.write <script type = text/javascript> _ & Alert ('Hello World! & I &') </sCript> Próximo %> Em relação à execução da resposta.Redirect e JavaScript Observe que o código a seguir está escrito incorretamente: <% Response.Redirect Index.asp Response.write <script type = text/javascript> _ & Alert ('Erro de senha!') </sCript> %> |
Este é um erro comum. Os escritores costumam pensar que escrever código dessa maneira pode fazer com que o cliente exiba um prompt de erro de senha e depois se transformar em index.asp. De fato, isso não pode acontecer. Mesmo que duas linhas de código sejam trocadas em sequência, é impossível alcançar esse efeito.
O motivo está relacionado à maneira como o servidor lida com as duas linhas de código. Essas duas linhas de código não podem funcionar ao mesmo tempo.
Response.Write envia um texto para o cliente. O conteúdo deste texto pode ser um script. O navegador do cliente pode executar esse script após recebê -lo. Observe que ele só pode ser executado após recebê -lo.
Response.Redirect sends an HTTP header to the client (what is HTTP header? Let's put it this way, for example, the write to the client cookies is HTTP header information, and the HTTP header information is sent back to the client browser before the HTTP subject. This is why sometimes we modify cookies after closing the server's buffer, because the subject has started to transmit and is not allowed to send HTTP header Informações.), O conteúdo da informação diz ao navegador do cliente para pular para a página para navegar. Observe que essas informações de redirecionamento funcionam imediatamente, ou seja, essas informações de redirecionamento são exclusivas. Quando o buffer é ativado, não importa quanto conteúdo tenha sido gravado no buffer usando a resposta. Se rastrearmos dinamicamente a execução do programa, também descobriremos que, depois de chamar a resposta.Redirect, o programa para de executar, portanto, observe que o programa do lado do servidor deve fechar a conexão de dados e outras operações antes de chamar a resposta.Redirect.
Então, como o exemplo acima deve ser modificado? Se você não estiver disposto a modificar esse index.asp para adicionar os avisos de script, só poderá colocar o comando de direção no script do cliente para executar, assim:
| A seguir, o conteúdo citado: <% Response.write <script type = text/javascript> _ & alert ('!'); location.href = 'index.asp' </sCript> %> |
Compartilhar: ASP 3.0 Programação Avançada (33) 7.4.2 Manipulação de erros do VBScript No VBScript, o intérprete de script não pode lidar com nenhum erro que encontra e continua executando a próxima instrução usando o erro ON RESUTRO PRÓXIMO ESTIMUNDAÇÃO. Depois que essa declaração for processada, o mecanismo de script continuará executando o programa subsequente.