Um buffer é uma armazenagem que mantém dados durante um certo período antes de liberá-lo. A vantagem é que seu comportamento pode ser controlado de modo a armazenar dados até um determinado evento, que faz com que o buffer libere os dados ou os descarte.
Exemplo:
<%
Option Explicit
Response.Buffer = TRUE
Response.Expires = 60
%>
<html>
<body>
Este texto não irá aparecer!!
<%
Response.Clear
Response.Expires = 0
%>
<html>
<body>
Agora sim!!
<%
Response.Flush
%>
</body>
</html>
<%
Response.End
%>
Agora vamos analisar o que foi feito neste exemplo:
Response.Buffer = TRUE: esta instrução deve ser colocada antes de qualquer tag HTML.
Quando ativamos o buffer, significa que o servidor armazenará a saída da página e não envia uma resposta ao browser até que todo o programa tenha sido processado ou até que o método Flush ou End tenha sido chamado.
Response.Expires = 60: Aqui, o valor 60 representa em minutos, ou seja, a página expirará em 1 hora. Útil para sites que mudam seu conteúdo de hora em hora.
Response.Clear: Quando o navegador chega lê essa linha, ocorre a limpeza do buffer, ou
seja, toda a página html que estava armazenada no buffer antes do comando, é limpo (apagado), por isso nunca será exibida aquela mensagem anterior. E por isso também, que é necessário escrever um novo documento HTML. Observe que após o Response.Clear foi setado um novo prazo de expiração da página (0) e um novo código HTML foi inserido.
Response.Flush: Esta instrução força o servidor a enviar imediatamente ao cliente qualquer saída armazenada em buffer. Nesse caso, há apenas o novo html criado após a “limpeza”.
Response.End: Esta instrução faz com que o servidor pare de processar o script e retorne
o resultado atual. Isto significa que se houver mais códigos após o Response.End, ele não será mais processado e enviado ao browser.
Ai me veio a idéia de usá-lo em um sistema de bate-papo no lugar do tão temido Refresh.
Um pouco antes de eu postar esse tópico eu encontrei esse tópico que aborda esse assunto e até deu um exemplo:
<% response.buffer = true sub sleep(segundos) hrInicial = second(time) + (minute(time) * 60) + (hour(time) * 60 * 60) + 10 : hrAtual = second(time) + (minute(time) * 60) + (hour(time) * 60 * 60) + 10 while((hrAtual - hrInicial) < segundos) : hrAtual = second(time) + (minute(time) * 60) + (hour(time) * 60 * 60) + 10 : wend end sub function timePT(hora) n_hora = hour(hora) : n_min = minute(hora) : n_seg = second(hora) if len(n_hora) = 1 then : n_hora = "0" & n_hora : end if if len(n_min) = 1 then : n_min = "0" & n_min : end if if len(n_seg) = 1 then : n_seg = "0" & n_seg : end if timePT = n_hora & ":" & n_min & ":" & n_seg end function for i=1 to 20 :response.write "<!-- Sending buffer content...(" & i & ") -->" & vbcrlf : next while NOT var_inexistente response.write timePT(time) & " - bla<br>"& vbcrlf response.flush() sleep(5) wend %>
O tópico completo é este postado pelo TARKAN e o mesmo no tópico disse que esse método funciona mas sobrecarrega o servidor.
Então acho que o caminho é esse e eu gostaria da ajuda de vcs para tentarmos utilizar esse método mesmo sabendo que será difícil de se conseguir mas não custa tentar né !
Conto com a colaboração de todos t+ !