Обновить страницу только раз - PullRequest
0 голосов
/ 23 декабря 2009

Я пишу метатег для обновления веб-страницы. Теперь я хочу обновить страницу только один раз. Какой код для обновления страницы только один раз. Пожалуйста, помогите мне решить проблему ...

Заранее спасибо ..

Ответы [ 2 ]

1 голос
/ 23 декабря 2009

Используя javascript, вы можете установить cookie с переменной «refreshed» и проверить, установлена ​​ли она, если нет, то обновить страницу. Конечно, это включает в себя довольно много кода для установки и чтения из файла cookie, а также функцию, вызываемую при перезагрузке.

Мой подход - это URL-адреса, потом опять php, а не метатеги, это будет примерно так:

<?php 
    if($_GET['r'] != 1) header('refresh: 0; url=/index.php?r=1');
?>

Перезагружает страницу, устанавливая переменную в URL-адресе, в данном случае r для обновленного значения как true. Таким образом, в следующий раз, когда он загружается, он не будет перезагружен. Это работает, это всего лишь одна строка кода, и это сэкономит вам время на кодирование и выполнит работу.

Обновление: (пользователь хотел в asp)

Должно работать, но я не пробовал и не могу попробовать (сейчас я в аэропорту)

<%
    dim refreshOnce
    refreshOnce = request.querystring("r")

    if refreshOnce <> 1 then  Response.AddHeader "Refresh", "0;URL=/index.php?r=1"
%>
0 голосов
/ 24 декабря 2009

Решение Javascript с использованием поля формы для хранения состояния:

<html>
  <head>
    <script language="javascript">
      function init() {
        var form = document.getElementById('theform');
        var input = form.refreshed;
        function reload() {
          location.reload(false);
        }
        function isRefreshed() {
          return !!input.value;
        }
        function doDisplay() {
          var el = document.getElementById(isRefreshed() ? 'two' : 'one');
          el.style.display = 'block';
        }
        function conditionalRefresh() {
          if (!isRefreshed()) {
            input.value = 'true';
            setTimeout(reload, 1000);
          }
        }
        doDisplay();
        conditionalRefresh();
      }
    </script>
  </head>
  <body onload="init();">
    <form id="theform">
      <input type="hidden" name="refreshed" />
    </form>
    <div id="one" style="display: none;">
      one
    </div>
    <div id="two" style="display: none;">
      two
    </div>
  </body>
</html>
...