Resolvendo o problema do Cache

Muitas das vezes quando para web, nossa aplicação não responde da maneira correta, e a priori, não conseguimos identificar o problema.Mas quase sempre o problema é o cache.

Por Programação Pular para comentários
Resolvendo o problema do Cache
Quando estamos desenvolvendo para web, principalmente em AJAX, paraece que nossa aplicação parou de funcionar e fica repetindo a mesma resposta para nossas solicitções, mesmo quando essas solicitções passam parâmetros diferentes. Esse problema não ocorre somente em AJAX, aplicações clássicas também sofrem com esse transtorno.

Primeiramente, o que cache?


Para tornar a web mais responsiva e rápida os desenvolvedores implemetaram cache em diversoso níveis, o mais comum deles e o cache em disco, realizado pelo navagdor.Quando um página é requisiatada o navegador procura em seu histórico, para ver se há alguma página com a mesma URL, caso encontre, o navegador não requisita uma nova página, ao invés disso e pega a página do cache e a exibe diretamente, sem que ela seja reprocessada pelo navegador.Bom isto ajuda em MUITO, quando se trata de páginas que custem a serem atualizadas ou possuam muitas imagens.Mas se tratando de páginas dinâmicas, isso pode ser uma dor de cabeça para os desenvolvedores.

Em AJAX, geralmente nossa aplicação tem uma taxa de atualização muito alta, e o cache passa a ser o nosso inimigo número 1, pois nem sempre teremos acesso a todas as atualizações disponíveis. Antes mesmo de se pensar em AJAX, medidas para evitar que aplicaçoes ficassem "presas" no cache foram tomadas.Foram criadas META-TAGS de cabeçalho para informar ao naveagdor ou ao proxy que a página não deveria ser armazenada.

Esta tag informa se a págian pode ou não ser armazenada.Possui quatro valores possíveis:
  - Public : a página pode ser armazenada e é de uso público(todos tem acesso ao cache)
  - Private:a página pode ser armazenada e é de uso privado(somente o usário que requisitou a página pode acessar o cache)
  - No-Cache: A página não é armazenada em Cache
  - No-Store: É feito um cache temporário, a página não é arquivada.

Estas meta-tags pertencem ao somenete ao protocolo HTTP1.1 e não são respeitadas por todos os navegadores(especialmente por aquele azulzinho).
Para obter maior compatibilidade, você pode usar uma outra meta-tag junto com essas.

Além, disso você pode informar com que frequência a sua página é atualizada, assim o cache possui´ra uma data de expiração.

Com esta meta-tag, você pode informar quantos minutos a página levará em média para expirar, sendo que zero siginifica AGORA, ou seja o navegador sempre deve procurar por uma nova versão da página no servidor.Por questões de compatiblidade, algumas pessoas colocam "-1" com valor, também funciona.
Outro valor possível é uma data válida, assim o navegar sebrá a data exata de expiração da página.


Por fim você pode controlar o cache de páginas através de scripts de servidor com ASP ou PHP, ou até mesmo CGI.
Alguns exemplos:

// Data no passado
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// Sempre modificado
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

// HTTP/1.0
header("Pragma: no-cache");
?>


  
'HTTP/1.1
Response.CacheControl = "no-cache"
Response.AddHeader "cache-control","no-cache"
'HTTP/1.0
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1 ' minutos até a expiração
Response.Expiresabsolute = Now() ' data de expiração


Até a próxima

Compartilhe com seus amigos:
Ramon Ferreira Silva
Ramon Ferreira Silva Formado em Sistemas de Informação, atualemnte trabalha como Arquiteto de Software em uma empresa de telefonia móvel.
Quer conversar com o(a) Ramon, comente:
Carregar comentários
Últimas notícias de Programação
  • Google usa Mulher-Maravilha para ajudar meninas a programar

    Google usa Mulher-Maravilha para ajudar meninas a programar

    Meninas ganham um incentivo extra na hora de aprender a programar, a Mulher-Maravilha.

  • Criando um cadastro de usuário em Java

    Criando um cadastro de usuário em Java

    O objetivo deste artigo é desenvolver uma aplicação em JSE (Java Standard Edition) de inserção de dados utilizando alguns padrões de projeto.

  • Quer aprender PHP? Saiba mais

    Quer aprender PHP? Saiba mais

    Chegou o tão aguardado curso online de PHP do Oficina da Net. Você não pode perder. PHP é uma das linguagens mais usadas no mundo. Os conteúdos que vou mostrar no curso, são exatamente o que você precisa saber para iniciar sua carreira como programador.

  • Formulário de contato em php

    Formulário de contato em php

    Guia do PHP: Aprenda a fazer um formulário em PHP que envia via SMTP autenticado o e-mail para um destinatário.

  • Como fazer um GIF?

    Como fazer um GIF?

    Aprenda a criar um GIF animado de vídeos. Descubra como criar os GIFs, imagens animadas que você vê em na internet.

  • O que priorizar na hora de escolher o hosting para seu site?

    O que priorizar na hora de escolher o hosting para seu site?

    Com o crescimento das ofertas na web, saiba o que você deve levar em consideração na hora de escolher a melhor empresa de hosting para seu empreendimento

  • O que preciso fazer para criar um aplicativo?

    O que preciso fazer para criar um aplicativo?

    Temos visto que desenvolver aplicativos que visam o mercado mobile pode ser mais que uma alternativa rentável, pode colocá-lo no topo, deixá-lo rico. Mas nem tudo são flores, e o aspirante a desenvolvedor de app precisa seguir algumas regras.

  • WEBINAR 3.9

    WEBINAR 3.9

    Venha para o Maker e descubra como tornar o seu negócio mais competitivo.