代码之家  ›  专栏  ›  技术社区  ›  Lukasz Re

连续刷新页面时出现问题

  •  0
  • Lukasz Re  · 技术社区  · 7 年前

    当我尝试运行此脚本时:

    <form class="form-inline" action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
        <button type="submit" name="buttonSubmit" class="btn btn-default">Submit</button>
    </form>
    <?php
      if (isset($_POST['buttonSubmit'])) {
        unset($_POST['buttonSubmit']);
        echo "<script>alert(".isset($_POST['buttonSubmit']).")</script>";
        echo "<script>location.reload(true);</script>";
      }
    ?>
    

    因此,页面在无限循环中刷新。

    原因是什么?

    如何只刷新一次网站?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Asons Oliver Joseph Ash    7 年前

    当您使用 location.reload(true); ,您可以通过编程方式执行与单击浏览器“刷新/重新加载”按钮相同的操作。

    这将产生另一个“提交”,一次又一次,因此始终做出声明 isset($_POST['buttonSubmit']) 说实话。

    以下是一些解决方案:

    注意,如果 'page-to-load' 已加载相同的,您可以使用 location.href ,例如。

    location.replace(location.href);
    

    另一种方法是,不依赖客户端脚本,而是执行 response redirect 提交表单时,服务器端。

        2
  •  1
  •   Funk Forty Niner    7 年前

    这对我有帮助:

    改变 location.reload(true); window.location.href = '';