De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: André Milani
Data de Publicação: 11 de abril de 2010
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.
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: Sat, 26 Jul 1997 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.
André Milani é instrutor oficial da Softblue Cursos On-Line onde possui um blog sobre PHP e bancos de dados, 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. Possui mais de 8 anos de experiência em desenvolvimento web, atuando há mais de 4 anos com cursos e treinamentos de profissionais.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários