Pergunta

Há uma página específica que eu gostaria que o navegador sempre carregue, principalmente quando o usuário pressiona o botão Back Back para chegar a ele.

Por isso, uso a seguinte diretiva 'Cache-Control' no cabeçalho desta página (pegando o PHP diretamente do meu código).

$headers['Cache-Control'] = 'no-store, no-cache, must-revalidate, max-age=0';

Isso funciona para FF, IE e Chrome, mas o Safari (5.0.1) parece ignorar a diretiva e não recarregue a página (em vários usuários, por isso não parece ser um problema específico de configuração). A pesquisa não revelou bugs conhecidos, então estou assumindo que há algo errado do meu lado.

Qualquer dica será muito apreciada.

ATUALIZAÇÃO: Acabei de encontrar esta resposta em So.

Navegador Safari ignorando meu sem cache

Ainda não tentei, mas parece promissor. Muito estranho que seja uma adição à etiqueta corporal, então estou cético.

Foi útil?

Solução

A resposta é incluir o seguinte atributo na etiqueta corporal para forçar o Safari para recarregar a página:

onunload=""

Como em:

<body onunload="">

Eu encontrei isso aqui: Navegador Safari ignorando meu sem cache

Que por sua vez o obtiveram deste tópico: Existe um evento Onload de navegador cruzado ao clicar no botão Voltar?

Outras dicas

Veja também este relatório de bug do webkit:https://bugs.webkit.org/show_bug.cgi?id=71509

Estou enfrentando o mesmo problema e parece ser um bug no Safari.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top