AJAX - DIV - CACHE
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.
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 |
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");
?>
<?
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)
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...
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.
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.
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)
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.