【问题标题】:modify page reload interval after first page auto reload修改第一页自动重新加载后的页面重新加载间隔
【发布时间】:2016-02-15 20:35:41
【问题描述】:

如何修改第一个页面重新加载后的页面刷新时间(即 30 秒),如果用户仍在页面上,则每 5 分钟重新加载一次页面。目前它每 30 秒永远重新加载一次。

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

window.onload = timedRefresh(30000);

我该怎么做?谢谢

【问题讨论】:

  • 您可以设置一个 localStorage 值来查看他们是否设置了初始计时器,如果是,请将其更改为 5 分钟。尽管在上下文范围内,这对于网站来说似乎相当烦人。为什么不用 ajax 刷新你需要的东西?
  • 您不能通过重新加载来执行此操作,因为相同的脚本会重新开始。您可能希望使用 URL 查询参数重定向用户,如果该参数存在,则更改时间
  • @Microsmsm 不是重复的,问题是问如何在第一次刷新后更改时间

标签: javascript jquery


【解决方案1】:

你可以在你的 URL 中设置一个参数来告诉你它是否是第一个页面重新加载,比如http://www.yoururl.com?fr=1,其中fr 代表“第一次重新加载”。

之后,您只需要以最适合您的方式获取该查询字符串参数,通过 JavaScript 或在服务器端捕获其值,然后将其发送到客户端。

最后,你只需要检查条件来决定是否在 5 分钟的 30 秒后重新加载。

例如,假设您在名为firstReload 的变量中具有fr 的值:

window.onload = timedRefresh(firstReload == "1" ? 30000 : 300000);

【讨论】:

    【解决方案2】:

    您可以在 localStorage 中保存重新加载次数

    【讨论】:

      【解决方案3】:

      您可以使用localStorage 保存第一次加载页面的标志

      var timeout = localStorage.getItem('pageloaded') ? 3e5 : 3e4;
      function timedRefresh(timeoutPeriod) {
         localStorage.setItem('pageloaded', true);
         setTimeout("location.reload(true);",timeoutPeriod);
      }
      
      window.onload = timedRefresh(timeout);
      

      【讨论】:

      • 不幸的是它一直在刷新
      • 这里哪里可以设置刷新时间?
      • 3e5 和 3e4 是刷新时间。 3e5 = 300000; 3e4 = 30000;
      • 它应该在第一次 30 秒后刷新,然后在 5 分钟后第二次、第三次......不是吗?
      • 我已将其修改为 5s 然后 1s jsfiddle.net/rnpqas21
      【解决方案4】:

      通过使用 localStorage,这是可能的。

      function timedRefresh(timeoutPeriod) {
          setTimeout("location.reload(true);",timeoutPeriod);
      }
      
      var rate;
      if (localStorage.getItem("time")) rate = 300000;
      else {
          localStorage.setItem("time", true);
          rate = 30000;
      }
      
      window.onload = timedRefresh(rate);
      

      这将根据用户是否设置了 localStorage 键来设置计时器。

      【讨论】:

      • setTimeout(和 setInterval)不应该将字符串作为第一个参数,因为隐含的 eval() 会在当前范围内引入新内容。
      • 我同意匿名函数会更好
      猜你喜欢
      • 2018-07-02
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 2010-09-22
      • 2020-07-22
      • 1970-01-01
      相关资源
      最近更新 更多