blog | sorteios
Softblue - Qualidade em Cursos On-Line  

e-mail:

senha:
cadastrar | recuperar senha | entrar

Home Cursos Kits Como funciona Perguntas Frequentes Quem somos Contato

Blog Softblue

André Milani é formado em Ciência da Computação pela PUC-PR, pós-graduado em Business Intelligence pela mesma instituição e possui diversas certificações na área de TI. É também autor de vários livros na área de informática, entre eles o MySQL - Guia do Programador, PostgreSQL - Guia do Programador e Construindo Aplicações Web com PHP & MySQL, todos pela editora Novatec, os quais podem ser encontrados nas principais livrarias, inclusive no Submarino. Atua desde 2003 anos com desenvolvimento web e treinamentos de profissionais. Também é desenvolvedor de aplicativos para o ambiente iOS da Apple, possuindo aplicações que juntas somam mais de 50.000 downloads na AppStore.

PHP e arquivos em cache

Publicado em 06/04/2010 às 18:18:13 horas.

     

Olá pessoal! Meu nome é André Milani, sou autor de livros de bancos de dados e programação e também instrutor da Softblue. Este é o meu blog pessoal onde pretendo abordar temas de tecnologia na área de programação e desenvolvimento de softwares, em especial o PHP, SQL e assuntos referentes a bancos de dados.

Neste primeiro post eu gostaria de compartilhar uma situação que aconteceu com um leitor do meu livro de PHP e MySQL sobre cache. Levamos um bom tempo para conseguir detectar que o problema não estava no código PHP, mas sim no cache do navegador. Então, para prevenir este problema, vão aí algumas dicas bem interessantes:

Forçando um refresh
Muitos sabem que a tecla F5 dos navegadores, pelo menos na maioria deles, serve para atualizar a página. Este procedimento é chamado de refresh (nome em inglês). O que nem todos sabem é que o comando F5 realiza um refresh com base em algumas configurações de data de expiração dos arquivos em questão, e que dependendo da data, somente a tela é atualizada, mas não os conteúdos dos arquivos cujas datas ainda não expiraram.

Para resolver esta situação, utilize o comando CTRL + F5. Este comando força o refresh dos arquivos, independente da data de expiração. Ele apaga do cache de seu navegador todos os arquivos da página em questão, e solicita todos os arquivos novamente ao servidor.

Evitando o cache em PHP
Mesmo conhecendo o comando CTRL + F5, pode ser que nem todos os visitantes de nossos sites conheçam este recurso, ou ainda, saibam que a página está em cache. Por este motivo, é interessante prevenir que as páginas utilizem cache, fazendo com que seus visitantes sempre acessem as páginas com as últimas atualizações realizadas. De qualquer forma, é recomendado que o desenvolvedor estude uma política de cache para suas aplicações on-line, para quando possível, otimizar recursos dos servidores.

Para prevenir o uso do cache em PHP, utilize o comando header setando duas propriedades específicas:

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

 // Date in the past
header("Expires: Sun, 11 Apr 2010 05:00:00 GMT");

A primeira propriedade é a Cache-Control, que informa ao navegador, ou qualquer proxy que possa estar no caminho do arquivo, para não armazená-lo em cache.

A segunda propriedade é a Expires, que define a data de expiração do arquivo. É possível definir uma data já passada, para que o cache já seja entendido como expirado, ou então é possível definir a sua data de expiração. Esta propriedade deve ser informada para arquivos que possuem alto volume de acesso, mas baixa taxa de atualização, o que otimiza recursos do servidor.

Vale a pena mencionar que, ao utilizar o comando header, nenhuma informação pode ser impressa antes pelo PHP, nem por meio de comando echo, print ou outro. Esta é uma particularidade do comando header, e maiores informações podem ser encontradas no manual do PHP, clicando aqui.

Comentários

Cara valew mesmo... essa informação me ajudou a resolver os problemas com os graficos do fusionchart no php...

Valew mesmo

Enviado em 06/10/2011 às 14:47:16 horas, por Agnaldo Carvalho


Olá André, bom há dois dias eu procurava algum comando que me desse uma resposta conforme a que vc passou aki, essas duas linhas foram de suma importancia para mim...
Ótima dica!!
Vlw!

Enviado em 03/08/2011 às 13:14:16 horas, por Samuel S Carvalho

Envie o seu comentário

  Nome: 
  Comentário: 
Digite o código aqui:

Mailing List

Cadastre o seu e-mail para receber notícias e informações sobre novos cursos e novidades dos blogs de nossos instrutores!



* Cadastre-se e participe de sorteios de brindes e livros de informática!

Curso on-line

Curso PHP & MySQL
de R$ 329,90 por R$ 229,90
(em até 18x)

Conheça nossos outros cursos

Posts anteriores

.: Softblue Logic IDE

.: Cannot load php5apache2_2.dll

.: Conhecendo o Android

.: Protegendo senhas

.: Apache Commons Lang API

.: Trailer do filme: Java 4-ever!

.: Gerando PDF em Java

.: PHP e arquivos em cache

.: JDK e Eclipse no Linux

.: Instalando o Eclipse

.: Instalando o JDK

.: Zip/Unzip em Java

.: Enviando e-mails no Java

Nossos cursos

Nossos cursos são criados com base na realidade do mercado de trabalho, abordando teoria e prática das tecnologias. Conheça nossos cursos clicando aqui.

Softblue 2003/2012 - Todos os direitos reservados