Принудительная страница для перезагрузки с сервера вместо загрузки кешированной версии

У меня есть веб-страница A. Пользователь нажимает на форму для отправки данных и берет его на веб-страницу B. Когда он нажимает кнопку «Назад», мне нужна веб-страница A, которая будет обновляться с сервера, а не загружается из кеша. У меня есть это: <meta http-equiv="expires" content="0"> но он, похоже, не работает. Я также попытался установить переменную на странице B (переменная сеанса через php), а затем проверить ее на странице A и обновить (или нет) в соответствии с ее существованием. Это, похоже, тоже работает. Основной код для этого: Страница A:

 <?php if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); echo' <script> window.location.replace("/****/****/*****.php"); </script> '; } ?> с <?php if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); echo' <script> window.location.replace("/****/****/*****.php"); </script> '; } ?> 

И на странице B:

 $_SESSION['reloadPage'] = 1; 

С помощью PHP-решения он просто пытается обновить страницу в бесконечном цикле. Что-то в моей логике отсутствует? Правильно ли это?

РЕДАКТИРОВАТЬ При дальнейшем расследовании, когда вы укажете браузеру, чтобы он не кэшировал страницу, это также заставляет обновлять полную серверную часть ? Это то что мне нужно. Полное обновление на стороне сервера.

  • Присвоение результата окна подтверждения JavaScript переменной PHP
  • Передача переменной Javascript на PHP с использованием Ajax
  • Как получить полный URL-адрес в адресной строке с помощью PHP
  • JQuery JSON Decode (PHP для Javascript)
  • Признание пользователя без файлов cookie или локального хранилища
  • JavaScript QR Code Reader - это можно сделать? Или, удаленная служба?
  • Как решить проблемы mysql_fetch_assoc ()
  • Загрузка файла PHP AJAX
  • 6 Solutions collect form web for “Принудительная страница для перезагрузки с сервера вместо загрузки кешированной версии”

    ОК попробуйте это вместо этого:

     <?php if(!session_id()) { @session_start(); } header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); header('Last-Modified: ' . gmdate( 'D, d MYH:i:s') . ' GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); if(isset($_SESSION['form_submitted'])) { unset($_SESSION['form_submitted']); header('Location: ?' . uniqid()); #header('Refresh: 0'); } ?> с <?php if(!session_id()) { @session_start(); } header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); header('Last-Modified: ' . gmdate( 'D, d MYH:i:s') . ' GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); if(isset($_SESSION['form_submitted'])) { unset($_SESSION['form_submitted']); header('Location: ?' . uniqid()); #header('Refresh: 0'); } ?> 

    Вам нужно будет установить $ _SESSION ['form_submitted'] = true на стр. 2.

    Попробуйте со всеми тремя:

     <meta http-equiv="cache-control" content="no-cache"> <!-- tells browser not to cache --> <meta http-equiv="expires" content="0"> <!-- says that the cache expires 'now' --> <meta http-equiv="pragma" content="no-cache"> <!-- says not to use cached stuff, if there is any --> 
     <?php session_start(); if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); //no outputting code above header header("Cache-Control: no-cache, must-revalidate"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); header("Location: http://www.mypage.com/"); } ?> с <?php session_start(); if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); //no outputting code above header header("Cache-Control: no-cache, must-revalidate"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); header("Location: http://www.mypage.com/"); } ?> 

    Я знаю, что это старый вопрос и уже есть ответ (который не освежает сервер). Поэтому я хотел бы поделиться решением с помощью jQuery.

     $('#back-button').click(function(){ setTimeout(location.reload(true), 1000); }); 

    Объяснение:
    Когда вы нажмете кнопку «Назад», setTimeout будет запускаться через 1 секунду (1000 миллисекунд). Затем страница будет перезагружаться с сервера, так как параметр внутри reload является true .

    Если вы reload в reload он перезагрузится с сервера, а если вы поместите false он перезагрузится из кеша. Источник w3schools .

    Ваш JavaScript должен быть …

     window.location = "/****/****/*****.php" 

    Я думаю, что это должно исправить ваш цикл.

     <?php session_start(); if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); echo' <script> window.location.replace("/****/****/*****.php"); </script> '; } ?> с <?php session_start(); if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); echo' <script> window.location.replace("/****/****/*****.php"); </script> '; } ?> 
    Interesting Posts

    Как предотвратить перетаскивание дочернего элемента, но разрешить перетаскивание родителя?

    Как вы обслуживаете файл для загрузки с помощью AngularJS или Javascript?

    Как увеличить номер версии с помощью задачи Gulp?

    Угнать переменную с окном для Chrome

    Продолжайте выполнение определенных задач, даже если один из них

    JavaScript: Может ли запятая произойти после последнего набора значений в массиве?

    Данные HTML и строка, которая выглядит как число

    XML-массив javascript с jQuery

    Проверьте, доступен ли URL из веб-браузера, т. Е. Убедитесь, что он не заблокирован прокси-сервером

    Объясните синтаксис инкапсулированной анонимной функции

    Поиск алгоритма FP для создания объектов из разделенных точками строк

    Проблемы с круговой зависимостью и ООП в AngularJS

    «Javascript,« Хорошие детали »: диаграммы железных дорог

    Сделать VueJS и jQuery хорошо

    Возможно ли сбросить генератор ECMAScript 6 в исходное состояние?

    JavaScript делает сайт умным, красочным и простым использованием.