【问题标题】:Ajax / Javascript - Refresh one time onlyAjax / Javascript - 仅刷新一次
【发布时间】:2019-05-25 06:16:17
【问题描述】:

我怎样才能刷新这个页面一次不重复

    function timedRefresh(timeoutPeriod) {
  setTimeout("location.reload(false);",timeoutPeriod);
}

window.onload = timedRefresh(3000);

document.getElementById('myModal').style.display='block';

【问题讨论】:

  • 你可以使用 location.reload();刷新关于 Ajax 成功的页面。
  • 上面的代码在page1.php上吗?
  • @JackBashford 不是currentpage.php
  • @onkar.v 不,这不是我的意思,请再次阅读我上面的问题先生,我想刷新特定页面而不是同一页面
  • window.location.href = "page1.php";

标签: javascript php html mysql ajax


【解决方案1】:
int refresh=0;  

function timedRefresh(timeoutPeriod) {
  setTimeout("location.reload(false);",timeoutPeriod);
  refresh=1;
}

if(refresh==0){
window.onload = timedRefresh(3000);
}


document.getElementById('myModal').style.display='block';

您可以添加一个布尔值或整数标志来检查页面是否已加载

【讨论】:

    【解决方案2】:

    问题是您重新加载完全相同的页面,因此无法坚持您已经运行该代码的事实,它只会再次运行它。 这样做的老式方法是使用 cookie:

    function timedRefreshIfNoCookie(timeoutPeriod, cookieName) {
        var cookies = document.cookie;
        if (cookies.indexOf(' '+cookieName+'=1;') < 0) {
            document.cookie = cookieName+'=1';
            setTimeout(function () {
                location.reload();
            }, timeoutPeriod);
        }
    }
    window.onload = function() {
        timedRefreshIfNoCookie(3000, 'refreshed');
    }    
    document.getElementById('myModal').style.display='block';
    

    您可能可以使用更好的东西,例如本地存储或 cookie 库,以便更轻松地使用 cookie。

    【讨论】:

    • 嘿先生,谢谢它的工作!但最后一个问题是为什么页面每 3 秒刷新一次?我们可以删除该刷新吗,因为每次我的电脑滞后时它都会刷新:(
    • 我的意思是让我们隐藏刷新但即使它隐藏页面仍然会刷新
    • 页面应该在 3 秒后刷新一次,然后不再刷新。这不工作吗?
    【解决方案3】:

    您可以使用 PHP 刷新页面

    header('Refresh: 0; url=page1.php');
    

    要刷新当前页面,可以使用 -

    header("Refresh:0");
    

    【讨论】:

    • 你不能在javascript中使用header,它的php函数
    【解决方案4】:

    虽然 Zeljka 的链接答案是未来的证明,但如果您已经使用哈希进行导航,最好使用 performance.navigation.type

    window.onload = function() {
        if(performance.navigation.type != 1) {
           timedRefresh(3000);
        }
    }
    
    function timedRefresh(time) {
        setTimeout(function() {
            location.reload()
        }, time);
    }
    

    请注意,NavigationType 已被折旧,但看起来新规范到货时会有等价物。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-24
      • 2018-08-15
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 2014-02-10
      • 2014-10-16
      • 2011-03-24
      相关资源
      最近更新 更多