Я пробовал каждую комбинацию и перестановку метатегов, которые должны помешать кэшированию страницы, но Firefox все равно кэширует страницу! Мне просто нужно перезагрузить URL, когда пользователь нажимает кнопку «Назад». Прекрасно работает в IE8.
Я перепробовал все эти ...
<meta http-equiv="Cache-Control" content="no-store" />
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="-1"/>
<meta http-equiv="Expires" content="Sat, 1 Jan 2000 00:00:00 GMT" />
... и я также попробовал следующий JavaScript ...
<input type="hidden" id="refreshed" value="no"/>
<script type="text/javascript">
onload=function(){
var e=document.getElementById("refreshed");
if(e.value=="no"){
e.value="yes";
}
else{
e.value="no";
location.reload();
}
}
</script>
... все безрезультатно.Что мне здесь не хватает?Страницы генерируются с помощью PHP, если это имеет значение.
ОБНОВЛЕНИЕ 1:
До сих пор я пробовал каждое предложение, но все еще не могу заставить это работать.Когда я использую PHP-код Криса, я использую его следующим образом ...
<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<!--the rest of my page-->
.. и, как вы можете видеть, он находится в верхней части моей веб-страницы, перед заголовком DOCTYPE
.
Я также экспериментировал с session_start()
, но даже после прочтения руководства я не уверен, что я правильно его использую.Я также поместил это прямо в самый верх моей страницы.
Я открыт для ЛЮБЫХ ПРЕДЛОЖЕНИЙ, которые делают эту работу, не нарушая другие функциональные возможности страницы.Я знаю, что видел страницы, которые перезагружаются КАЖДЫЙ РАЗ, когда используется кнопка «назад», КАК ОНИ ДЕЛАЮТ ЭТО?!
РЕШЕНО!
Оказывается, у меня былонесколько проблем работали против меня, но благодаря должной осмотрительности я смог устранить эти проблемы и выйти победителем.
После того, как Крис обновил свой код до ...
<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
echo time();
?><a href="http://google.com">aaaaaaaaaaaaa</a>
, я обнаружил, что его коддействительно работал, когда я использовал это ТОЧНО, как у него это было НИЧЕГО, но когда я помещал это в свои страницы, это не работало.Все мои страницы либо .php
, либо .html
, и все они прикреплены к DWT (динамическому веб-шаблону), поэтому я обновил их все сразу с помощью кода Криса.Чего я не понял, так это того, что DWT запускается ПРАВО ПОСЛЕ заголовка DOCTYPE
, поэтому код никогда не вставлялся в мои страницы.Я не смог найти способ включить в DWT заголовок DOCTYPE
, поэтому я вошел на все свои страницы и вручную вставил код над заголовком DOCTYPE
.
Затем я обнаружил, что, хотя мой сервер настроенпри синтаксическом анализе .htm
и .html
как .php
страницы .html
генерировали ошибку в том самом месте, где я вставил код Криса, говоря что-то вроде «не может изменить заголовки, заголовки уже отправлены».Мне было все равно, какие у меня были расширения, поэтому я просто изменил все свои .html
расширения на .php
расширения.
Последнее незначительное раздражение заключалось в том, что хотя страница теперь не кэшировалась (точно так же, какЯ хотел) Firefox размещал пользователя в его последнем месте на предыдущей странице, когда он использовал кнопку «Назад» (то есть, если пользователь находился в нижней части страницы «а» при переходе на страницу «б», то пользователь использовал кнопку «Назад» на странице).б они будут возвращены в конец страницы а, а не в верх страницы а, как нужно).Обрезка моего исходного JavaScript исправила это ...
<script type="text/javascript">
onload=function(){
document.getElementById('content').scrollTop=0;
}
</script>
Хотя это кажется очень сложным для такой простой проблемы, я рад, что она исправлена.Спасибо всем за помощь (особенно Крис).