0

AJAX - DIV - CACHE

criado por Cheng Junior em 07/08/2006 10:57am
Bem, essa é a minha primeira contribuição aqui, espero que os ajudem.

Quando comecei a usar AJAX, eu sempre carregava uma página dentro de uma div. Mas quando o conteúdo mudava, o browser exibia o conteúdo antigo, porque estava guardando na cache. Muito tempo depois eu consegui fazer com que o conteúdo que o ajax tava processando não fosse mais guardado na cache, assim o ajax sempre processava e mostrava o conteúdo real da página.
Data Autor Changelog Download
07/08/2006 10:57am Cheng Junior - Versão 1.0

Comentários:

Mostrando 1 - 5 de 5 comentários
Cheng Junior disse:
Luís,

esse código serve para que a página em que ele está não seja gravada na cache. Mas o nosso caso é mais complicado porque o problema é que o que está sendo gravado na cache é o conteúdo da <div></div>, colocar seu código não resolve o problema, pois quando o AJAX é acionado a página não é totalmente carregada, e sim o conteúdo que está dentro de uma <div></div> (no nosso caso específico) que irá modificar. Por isso é nescessário colocar um código na função do AJAX para que quando for requisitada uma nova página, o browser não guarde na cache seu conteúdo.
16/08/2006 12:50pm (~17 anos atrás)

Sempre consegui resolver isso usando os códigos abaixo, na verdade mesmo, nunca parei pra ler e ver que cada um faz, mas sei que funciona.

<?
header("Content-type: text/html; charset=iso-8859-1");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
16/08/2006 11:30am (~17 anos atrás)

Cheng Junior disse:
Cleiton,

a poucos dias andei pesquisando e consegui fazer o mesmo sem precisar passar a variavel rand na página.

obj.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');

esse código você coloca depois da requisição que funciona perfeitamente.

fui...
11/08/2006 7:32am (~17 anos atrás)

Caro Cheng,

Ententi o motivo de passar aquele parâmetro. Toda requisição sempre terá um valor diferente em rand, mesmo que os outros parâmtros passados sejam iguais.
Valeu, está funcionando sem CACHE.

Obrigado.
11/08/2006 7:21am (~17 anos atrás)

Caro Cheng,

Estou tentando eliminar o cache dos combobox que são carregados via AJAX.
Pelo código que você postou, você passa um parâmetro para função OPEN "&rand="+Math.ceil ( Math.random() * 100000 )
O que este parâmetro faz na sua função AJAX? Você poderia publicar sua função AJAX para eu poder adaptar esta parte do código na minha função.

Obrigado.
11/08/2006 6:51am (~17 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)