仅刷新/重新加载网页一次

时间:2014-12-10 07:32:08

标签: javascript php jquery html page-refresh

我搜索过高和低,无法找到任何关于如何在最初加载/查看后自动刷新页面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页面时。

我表达你的直接反应。感谢

3 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:0)

我不知道你为什么要那样做。但你可以一起使用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代码。

答案 2 :(得分:0)

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

的Javascript

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

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