Jump to content

problema cache Jquery datatable


fil79

Recommended Posts

Boas

Tenho uma aplicação que usa o plugin datatable do jquery para fazer a listagem de uma tabela.

Num outro script tenho um form para introduzir e editar valores da mesma tabela. Após a edição da mesma o script redirecciona para a página da listagem com o datatable. Acontece que as alterações nunca ficam visiveis. Tenho de fazer control+f5 para as mesmas ficarem visiveis.

Já tentei com php

header("Cache-Control: no-cache, must-revalidate");

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

E também com as meta tags de HTML

<meta http-equiv='cache-control' content='no-cache'>

<meta http-equiv='expires' content='0'>

<meta http-equiv='pragma' content='no-cache'>

Mas continua sem dar. Desde já agradeço

MCITP-MCTS-MCP

Link to comment
Share on other sites

Estás a guardar os dados na base de dados antes de redireccionares?

Sim os dados estão guardados. O problema é que que após o reencaminhamento não aparecem no datatable, acho que o problema é mesmo o cache do plugin, só aparece apos um refresh (control+f5)

deixa-me fazer uma pergunta absurda:

- por acaso não estás a dizer que estás a fazer refresh na página X após o envio dos dados na página Y, pois não ?

Não estou a perceber a tua pergunta. passo a precisar o cenário: tenho o ficheiro index.php que lista a tabela. no ficheiro form.php (que envia para o ficheiro form_action.pho) tenho o formulario para adicionar dados. No ficheiro form_action executo o SQL, e e seguida através do header location envia de novo para o index.

Após o redireccionamento a tabela continua igual ao que estava anteriormente. Faço control+f5 e só assim aparece o novo registo

Edited by fil79

MCITP-MCTS-MCP

Link to comment
Share on other sites

Os dados são carregados com ajax? Se sim é provável que o browser cache o resultado da chamada ajax, principalmente se usas o IE.

Para passares o problema da cache podes sempre acrescentar um parâmetro no url. Se os dados são carregados por ajax usa o parâmetro nesse url ou então em última instância faz um POST em vez de GET.

Link to comment
Share on other sites

Os dados são carregados com ajax? Se sim é provável que o browser cache o resultado da chamada ajax, principalmente se usas o IE.

Para passares o problema da cache podes sempre acrescentar um parâmetro no url. Se os dados são carregados por ajax usa o parâmetro nesse url ou então em última instância faz um POST em vez de GET.

Os dados não são carregados com ajax

MCITP-MCTS-MCP

Link to comment
Share on other sites

Olá não tenho a certeza do que digo mas parece que o teu problema é algo pelo qual já passei. Queres alterar a tabela depois de ela já existir.

Eu tenho num $.ajax() a criação de uma datatable, e o problema surge quando volto a chamar este .ajax e a datatable já existe

uso assim:

success: function(msg){
 //console.log(msg);
 dataTable = document.getElementById('dataTable');
 $(dataTable).empty();
 tHead = "<thead><tr><th>Operador</th><th>Quantidade Chamadas</th><th>Tempo Médio p/ Chamada</th><th>Chamada mais longa</th><th>Chamada mais curta</th><th>Total em Chamada</th></tr></thead>";
 $(dataTable).append(tHead);
 oTable = $(dataTable).dataTable({
   // "aaSorting": [ [0,'asc'], [1,'asc'] ],
   "iDisplayLength": 50,
   "sPaginationType": "full_numbers",
   "bProcessing": true,
   "bRetrieve": true
 });
 oTable.fnDestroy();
 $.each( msg, function(index, value){
   //console.log('teste: ' + value);
   //agentList.innerHTML += "\t<option>" + value.agent + "</option>\n";
   $(dataTable).dataTable().fnAddData([value.agent,value.callNr,value.average,value.max,value.min,value.total]);
   //$(dataTable).append("\t<tr><td>"+value.agent+"</td><td>"+value.callNr+"</td><td>"+value.average+"</td><td>"+value.max+"</td><td>"+value.min+"</td><td>"+value.total+"</td></tr>\n");
 });
 dataTable.style.display = 'inline';
}
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.