【问题标题】:Refresh/Reload web page only once [duplicate]仅刷新/重新加载网页一次[重复]
【发布时间】:2014-12-10 15:37:51
【问题描述】:

我搜索了很多次,但找不到任何关于如何在最初加载/查看页面后自动刷新ONLY ONCE 的脚本或说明。

我实现了一段 javascript 代码,它声明:如果页面完全加载,立即刷新页面,但只刷新一次。

window.onload = function () {window.location.reload()}

但这给出了一个没有“仅一次”的循环。

我也实现了meta refresh,但它也提供了一个循环。

<meta http-equiv="refresh" content= "0;URL=http://www.example.com" />

请告诉我如何使用正文onload 刷新功能only once 这是第一次而不是每次刷新 php 页面时。

感谢您的即时回复。谢谢

【问题讨论】:

  • 理论上,我还没有尝试过,但是您可以制作一个循环一次的循环......然后让脚本在循环内运行?只要确保你之后退出循环,它就不会在里面重新循环
  • 为什么需要重新加载页面???
  • @skibbi_bizzle,当页面完全加载时。我只想刷新一次页面。
  • @RohitJindal — 你被问到“为什么”而不是“请重复你自己”。
  • 这可能是一个 X-Y 问题,实际问题的解决方案是this

标签: javascript php jquery html page-refresh


【解决方案1】:

您应该在 cookie、服务器会话或本地存储中保留一个标志。例如:

window.onload = function () {
    if (! localStorage.justOnce) {
        localStorage.setItem("justOnce", "true");
        window.location.reload();
    }
}

【讨论】:

  • Plus 1,本来会建议本地存储选项,但这是一个完美的选择。
  • 不错的解决方案,到目前为止我从未使用过localStorage。唯一的缺点可能是您无法决定是否仅在您第一次访问该页面时才重新加载该页面 - 或者您是否希望在用户访问您网站上的另一个页面时再次重新加载它。这就是为什么我更喜欢我的 GET var 解决方案。
  • 如何调用这个函数?
【解决方案2】:

我不知道你为什么要那样做。但你可以一起使用 php、javascript/jquery 来解决这个问题:

<?php
    if ($_GET["reloaded"] != 1) { 

        echo '
            <script>
                $(function () {
                    window.location.href = "my_page.php?reloaded=1";
                });
            </script>
       '; 

    }
?>

解释:当你第一次加载页面时,$_GET["reloaded"] 没有设置,所以 javascript 被回显。我在这里使用了 jquery 的文档就绪功能,以确保您的 DOM 在重新加载页面之前已完全加载。重新加载时将 GET 变量 reloaded 设置为 1
因此 php 在重新加载时不会再次回显 javascript 代码。

【讨论】:

    【解决方案3】:

    您要做的是设置一个cookie,以检查用户是否已刷新。以下基本上是您应该如何做的伪代码。

    Javascript

    if(!COOKIE_EXISTS){
        SET_COOKIE();
        REDIRECT_TO_DESIRED_PAGE;
    }
    

    php

    if(!isset($_COOKIE['page_was_refreshed'])){
        setcookie("CookieName", "CookieValue", time() + (10 * 365 * 24 * 60 * 60));
        die(header("Location: your/url/to/redirect"));
    }
    

    【讨论】:

      猜你喜欢
      • 2013-07-12
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-13
      • 1970-01-01
      • 2018-12-18
      • 2020-06-17
      相关资源
      最近更新 更多