Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17635
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com cache, dados que não atualizam no IE

02-12-2012 17:04

Se você tem páginas em PHP, e está tendo problema com dados que não atualizam no Internet Explorer, porque ficam salvos em cache, aqui vão algumas dicas.

Para o topo do documento em PHP, use o seguinte para prevenir o armazenamento do cache

header("Pragma: no-cache"); header("Cache: no-cache"); header("Cache-Control: no-cache, must-revalidate"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 

Na parte HTML, dentro da tag head, use o seguinte:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="-1"> 

Agora no IE é comum mesmo com esses códigos continuar armazenando os dados em cache.

Ai vem uma dica de usar a função microtime() do PHP. Essa função adiciona um valor numérico ao nome do arquivo. Ela deve ser usada da seguinte forma:
Vamos supor que você tenha uma imagem ou arquivo que é atualizado via input file, e mesmo depois de salvar a imagem no bd, e carregar o documento, a imagem nova não carrega. Sendo necessário pressionar Ctrl+F5 para carregar a nova imagem.

Supondo que o nome da sua imagem vem do bd, pegue a variável da imagem, e adicione o microtime(), por exemplo:

echo "<img src=\"$foto?t=".microtime(true)."\">"; 

Note que adicionei um ?t ao nome da imagem, com um valor definido pelo microtime(). Assim, cada vez que a imagem for carregada no navegador, terá um nome diferente, tipo:

foto1.jpg?t=123456, foto1.jpg?t=789101112, etc..
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado