Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Workshop de ASP
SEÇÕES
Manuais relacionados
+Workshop de ASP
Categorias
+Scripts em ASP

Índice do Manual Workshop de ASP
+ Melhorar o registro em buscadores
+ Include. Incluir arquivos ASP
+ Crie seu próprio buscador
+ O objeto RecordSet
+ Paginar resultados em ASP
+ Global .ASA
+ Contar usuários ativos
+ Percorrido arrays e coleções
+ Mais sobre cookies
+ Detector de navegador
+ Trabalho com o buffer da página
+ Utilização ou não do Cache
+ Objeto Server
+ Leitura e escritura de arquivos em ASP
+ Cálculo de dias que faltam para uma data
+ Componentes do servidor ASP
+ AspUpload
+ Exportar dados de MySQL a Microsoft Access
+ Exportar dados de Access a MySQL
+ Mandar e-mails pelo ASP
+ Criar banco de dados Access com ASP
+ Passagem de variáveis pela URL
+ Uso de CDONTS para script de recomendar a um amigo em ASP
+ Servidores nos EUA e o asp
+ Como fazer zonas aleatórias em asp
+ Selects dependentes com ASP e banco de dados
+ Sistema de Recomendação em ASP com CDONTS
+ Encaminhar o navegador a uma URL com ASP detalhado
+ Uso de cookies
+ Galeria de imagens em ASP
+ Escrever um arquivo Excel através de ASP
+ Tratar erros em sentenças SQL executadas em ASP
+ Validar uma data com ASP
+ Arredondar decimais em ASP
+ Devolver um arquivo de Word através de uma página ASP
+ Um Chat em ASP
+ Averiguar o endereço IP de um visitante e bloquear IPs, em ASP
+ Lista dos arquivos de um diretório com ASP
+ Percorrido genérico por um recordset com ASP
+ Intranets com ASP
+ Restringir o acesso a páginas com ASP
+ Saídas em formato compatível Excel
+ Variáveis de servidor em ASP
+ GeoLite Country para ASP. Conhecer o país de um IP
+ Um Sistema de postais Virtuais em ASP I
+ Um Sistema de postais Virtuais em ASP II
+ Messenger através de BD em ASP
+ Objeto Datagrid de ASP.NET em ASP
+ Percorrer campos de formulário complexos em ASP
+ Percorrer valor do campo auto-numérico depois de inserir em ASP
+ O Objeto Browser Capabilities
+ Buscador simples em ASP melhorado

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


Encaminhar o navegador a uma URL com ASP detalhado

Notas interessantes sobre a utilização do método redirect do objeto response. Explicamos a razão de um possível erro ao utiliza-lo e como evita-lo.


Recebemos uma consulta interessante que acho que ainda não havíamos tratado com profundidade anteriormente. Trata-se do método redirect do objeto response, que em determinadas situações dá um erro, que nos relatava um visitante da seguinte maneira:

Sempre trabalhei em win2k e IIS para páginas ASP pessoais, mas agora estou em Win98 com PWS e as páginas que tinha funcionando em IIS com PWS me geram um erro Response.Redirect com a seguinte mensagem de erro:

"Os cabeçalhos HTTP já estão escritos no explorador cliente. Qualquer mudança no cabeçalho HTTP deve ser feita antes de escrever o conteúdo da página."

Método redirect

É um método do objeto response e serve para mandar o navegador a uma página que deve se indicar como parâmetro. Um exemplo de utilização seria:

response.redirect "sua_pagina.html"

Isto faria com que o nosso navegador se situasse na página sua_pagina.html.

O redirect se realiza enviando nos cabeçalhos do HTTP a ordem de encaminhamento. O caso é que não se pode enviar nada nos cabeçalhos do HTTP se já se começou a escrever texto da página web, ainda que seja um simples espaço.

Portanto, este código é incorreto:

<head>
<title>Olá</title>
</head>
<%
    response.redirect "xxx.asp"
%>


É incorreto porque antes de fazer o redirect foi escrito dentro da página web, neste caso é informação de cabeçalho, porém, este cabeçalho do documento HTML não é o mencionado cabeçalho do HTTP, que o mandam os servidores internamente sem que o programador participe ativamente, salvo para introduzir informação como um redirect ou um refresh a partir de funções ASP.

Armazenamento em buffer da página

Em instalações de ASP a partir da 3.0 se utiliza um buffer de armazenamento da página que tem como missão ir recolhendo o código HTML resultante da execução da página ASP, antes de manda-lo ao cliente. O buffer vai enchendo e quando termina de executar a página manda definitivamente por Internet até o computador do usuário.

A utilização do buffer em ASP 3.0 (IIS 5.0) encontra-se pré-determinada, enquanto que em outras versões de ASP, como a do Personal Web Server (PWS), está pré-determinado para não se utilizar.

Segundo aponta então, em ASP 2.0 e anteriores vai sendo enviado a página ao cliente à medida que for se executando e em ASP 3.0 até que não termina de se executar inteira, a página não é enviada ao cliente.

Sendo assim, o código anterior, onde se escrevia na página antes de executar um redirect, embora esteja mal desenhado em qualquer caso, pode dar erro ou pode não dar nenhum erro. Tudo vai depender de se havia ou não enviado texto ao cliente previamente à realização do redirect.

Tudo isto tem muito a ver com o buffer, pois, se está sendo utilizado, não se envia nada ao cliente e o redirect se realiza sem haver enviado texto, apesar de estiver escrito na página. Se não se utiliza o buffer, o texto colocado antes do redirect sim que teria sido enviado ao cliente e ao executar o redirect apareceria o erro que nos comentava nosso leitor.

Utilização ou não do buffer

Para indicar que se deseja utilizar o buffer temos que escrever esta sentença no princípio do código ASP.

response.buffer = true

Se coloca-se em ASP 3.0 não serve para nada, porque essa opção já estava pré-determinada. Porém, de qualquer forma, não incomoda e pelo menos nos asseguramos que se utilizará o buffer se as páginas forem transferidas a um servidor com ASP 2.0.

Se desejarmos fazer um redirect depois de ter escrito texto no buffer, o correto seria executar estas duas sentenças juntas:

response.clear response.redirect "http://www.oquefor.com"

A primeira linha indica que se deve esvaziar o buffer, com o qual se elimina o que tiver sido escrito na página, e a segunda indica que faça o encaminhamento. Insisto, isto só é possível se o buffer estiver sendo utilizado.

Referências: A sentença redirect se utiliza em muitos exemplos dentro de CriarWeb, porém é explicada no artigo Objeto response. Este artigo se engloba, junto com outros artigos de ASP básicos, no manual Programação em ASP.

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Workshop de ASP
Seguinte: Uso de cookies

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em Scripts em ASP


Comentários dos visitantes
Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
Acrescentar um comentário do artigo Acrescentar um comentário do artigo



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites