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
+ASP
+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


Trabalho com o buffer da página

Vemos em que casos salva-se a página em um buffer ao processá-la e a utilidade de trabalhar com o buffer com exemplos práticos.


As páginas ASP se constroem primeiro em um buffer do servidor e mais tarde se mandam ao cliente. Esta é a configuração pré-determinada de ASP 3.0, embora não fosse assim nas versões anteriores. Isto quer dizer que o código HTML que vai gerando o servidor ao processar a página ASP, vai se salvando em uma memória intermediária até que termina de se processar, momento no qual o servidor se encarrega de mandar o conteúdo do buffer.

Nota: É importante saber em qual versão de ASP estamos trabalhando. Os IIS 4.0 têm instalado ASP 2.0 por padrão e os IIS 5.0 têm ASP 3.0.

Nós podemos em certa medida controlar o envio da página ao cliente para que este se realize nos momentos que nós desejarmos. Para isto temos alguns métodos e propriedades do objeto response a nossa disposição.

Response.Buffer é uma propriedade que se estiver true (a opção por padrão em ASP 3.0) indica ao servidor que deve utilizar o buffer. Se estiver false (opção por padrão para versões anteriores de ASP) não o utiliza.
Response.Flush método para ordenar ao servidor que mande o que tenha no buffer ao cliente.
Response.Clear método que limpa o buffer, o esvazia e perde seu conteúdo. Só é útil se estivermos utilizando o buffer
Response.End método que detém a execução da página, a termina.

Algumas utilidades

Com a propriedade buffer e os métodos anteriores poderemos implementar várias funcionalidades. Por exemplo, se uma página estiver composta por grandes blocos de processamento os quais utiliza bastante tempo podemos, entre bloco e bloco mandar ao cliente os dados que já estiverem escritos.

<%
'Código da página lento de processar
...
Response.Flush 'envio o escrito até agora

'Outro pedaço de código da página lento de processar
...
Response.Flush 'envio o escrito até agora
...
%>


Trabalho com cabeçalhos e texto

Também podemos com estas ferramentas evitar algum erro derivado de escrever nos cabeçalhos do HTTP depois de haver escrito na página texto ou HTML. Recordemos as cookies, foi dito quando se comentava que viajam nos cabeçalhos do HTTP e que estes são mandados ao cliente antes que o texto com o código da página. Por esta razão, todo o trabalho com as cookies há de ser realizado antes de escrever nenhum texto na página. É parecido ao que acontece com o objeto método redirect do objeto response.

Trata-se de escrever muito texto na página e logo tratar de ler uma cookie do cliente. Deveria dar um erro, mas dependerá se a página estiver ou não no buffer, pois se não estiver no buffer não foi mandado e, portanto, não escrevemos nenhum texto no cliente. Como dissemos que se mande ou não se mande dependerá da propriedade response.buffer.

Este exemplo, com response.buffer em true, funciona perfeitamente porque, embora já tivermos escrito coisas na página, não as mandamos ao cliente, porque estão no buffer.

<%
response.buffer = true
for i=0 to 1000
   response.write "Workshop de ASP de criarweb.com "
next
response.clear
response.cookies ("ppepe") = "pqpqpqpqpqpqpqpqpq"
response.write request.cookies ("ppepe")
%>


Com response.buffer a false o mesmo script vai dar um erro porque não se pode ler ou escrever cookies se já tivermos escrito algo na página e se mandou ao cliente. False é a opção pré-determinada em ASP 2.0 e 1.0.

<%
response.buffer = false
for i=0 to 1000
   response.write "Workshop de ASP de criarweb.com "
next
response.cookies ("ppepe") = "pqpqpqpqpqpqpqpqpq"
response.write request.cookies ("ppepe")
%>


Sair se o usuário foi embora

Outro exemplo interessante para ilustrar o que se pode fazer controlando os fluxos é detê-los no caso de que o cliente abandone a página. Imagine que temos um processo que requer muito processamento e o cliente vai embora da página antes de termina-lo. Para evitar todo esse tempo perdido no processamento de sua solicitação, pode-se ir comprovando à medida que vai passando o tempo se o cliente continua na espera, pois se não continuar será inútil terminar o processamento que estávamos realizando.

Para conseguir saber se o cliente continua à espera pode-se utilizar uma propriedade do objeto response chamada IsClientConnected que devolve true no caso do cliente continuar à espera e false no caso contrário. O exemplo a seguir esclarecerá tudo.

<%
' Processamento muito longo no tempo
...
if not Response.IsClientConnected then
   Response.End
end if
...
' Processamento muito longo
%>


É interessante destacar que a propriedade Response.IsClientConnected não pode ser utilizada com segurança até ASP 3.0. EM ASP 2.0 foi implementada, embora não seja aconselhável usa-la porque tinha algum problema para dar resultados corretos.

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Workshop de ASP

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em ASP
+ 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