Normalmente não há razão para querer desativar o cache do browser, pois é bastante provável que um usuário acesse as mesmas páginas frequentemente. Entretanto quando estamos tratando com conteúdo dinâmico que exige sempre a versão mais recente necessitamos de algo que o faça, porém devido a problemas de segurança o JavaScript não é provido de métodos capazes de desativar o cache em todos os navegadores.

O jQuery por sua vez, possui um método, presente desde a versão 1.0,  que pode interromper o cache do navegador através de sua classe de AJAX, mudando a propriedade cache para false.

É possível fazer uma chamada AJAX com essa opção, ou seja, uma chamada específica sem cache:

$.ajax({
    url: 'teste.html',
    cache: false,
    success: function(html){
        $('#retorno').append(html);
    }
});

Ou desabilitar todas as chamadas, lembrando que esse código deve ser colocado dentro do método que inicializa o jQuery:

$.ajaxSetup({cache: false});

Sobre Erick

Erick de Oliveira escreveu 19 artigos no blog.

Tagged with →  
Share →

2 Responses to Desativar cache no jQuery

  1. Igor P says:

    Oi Eric, estou trabalhando com TI, olhando seu post pude deduzir que posso resolver o problema de uma lista que em um jsp que está com problemas de atualização (conteudos deletados só aparecem usando a função F5 do browser), porém não tive o resultado esperado será que apliquei de forma errada a função ajax ou ela realmente não atende ao caso?

    • Erick says:

      O comando $.ajaxSetup({ cache: false }); deve estar dentro da função de load do jQuery no caso, $(function(){ $.ajaxSetup({ cache: false }); });, para ter certeza que esta funcionando utilize o Firebug ou outra ferramenta que permita gerenciar as chamadas realizadas, o cache false na verdade apenas adiciona um complemento na url que não se repete, por exemplo um timestamp, então toda a chamada feitas geram uma nova url, que “engana” o browser para ele fazer a requisição sem cache.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>