ReAtualizar a pesquisa AJAX

7 respostas
C

Olá Colegas,

estou usando Ajax com Servlet, mas estou tendo problemas com a reatualização da pagina. Quando faço um pesquisa a pagina só atualiza quando fechar a janela e abro novamente. Parece que o Ajax armazena no buffer aquela pesquisa e não atualiza mais mesmo quando o banco de dados é alterado. Alguém já passou por isso para dar uma dica ?

7 Respostas

_Renatu

Seria legal se vc pudesse postar uma parte do seu código aqui, e dizer se está usando alguma ferramenta ou framework… DWR… GWT… JSF…

nbluis

Cara, isso não é buffer… é cache do teu nagevador…
Uma maneira legal de fazer isso é incluir as linhas abaixo dentro do cabelho http da tua página de retorno… aquela que tu chama no ajax.

Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Thu, 22 Feb 2007 09:21:20 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache

OBS: coloco a data atual no attributo Last-Modified…

Valeu…

C

Caro nbluis,

esqueci de informar que o problema está dando no Internet Explorer, no Mozilla Firefox funciona bem certinho.

Mesmo colocando essas linhas:
<meta Expires: Mon, 26 Jul 1997 05:00:00 GMT >
<meta Last-Modified: Thu, 22 Feb 2007 09:21:20 GMT >
<meta Cache-Control: no-store, no-cache, must-revalidate >
<meta Cache-Control: post-check=0, pre-check=0 >
<meta Pragma: no-cache >

O Internet Explorer continua retorbando o cache !

Será que não é algo que precise adcionar na classe Servlet ?

nbluis

tente adicionar estes atributos no cabecalho http e não em meta tags…

Deve funcionar…

C

nbluis:
tente adicionar estes atributos no cabecalho http e não em meta tags…

Deve funcionar…

Não entendi. Como adicionar estes atributos no cabecalho http ?

nbluis

Tu tem acesso ao objeto HttpServletResponse?
Daí tu usa…
response.addHeader(String, String);

Fica assim…

response.addHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT");
response.addHeader("Last-Modified", "Thu, 22 Feb 2007 09:21:20 GMT");
response.addHeader("Cache-Control", "no-store, no-cache, must-revalidate");
response.addHeader("Cache-Control", "post-check=0, pre-check=0");
response.addHeader("Pragma", "no-cache");

Até mais…

Y

Uma maneira simples de fazer isso (é gambiarra!) é só adicionar mais um parâmetro na URL da requisição.

Suponha que a url seja algo do tipo:

pesquisa.jsp?query=guj

Você configura de modo que a hora/hora + data seja adicionada à URL, resultado algo como:

pesquisa.jsp?query=guj&now=24/02/2007 18:04 (já com parser)

Isso pode ser feito com JavaScript.

Criado 21 de fevereiro de 2007
Ultima resposta 24 de fev. de 2007
Respostas 7
Participantes 4