【问题标题】:Refresh Page for interval using js使用js刷新间隔页面
【发布时间】:2012-08-15 19:32:21
【问题描述】:

如何使用 javascript 每分钟刷新一次页面。 注意:我没有控制/选项来编辑 HTML 正文标记(我们通常调用 onload 函数)。

【问题讨论】:

  • 我希望这是一个只读类型的页面,否则用户可能会很生气。

标签: javascript html refresh


【解决方案1】:

如果您不想编辑页面,这就是诀窍。打开控制台,写下下面提到的sn-p。

INTERVAL = 5    // seconds
STOP_AFTER = 15 // seconds

// Open the same link in the new tab
win1 = window.open(location.href);

// At every 5 seconds, reload the page
timer1 = setInterval(() => {
    win1.location.reload();
    console.log("Refreshed");
},INTERVAL*1000)

// Stop reloading after 15 seconds
setTimeout(() => clearInterval(timer1), STOP_AFTER*1000)
  1. 既然要重新加载它,就不能简单地写 location.reload(),因为控制台一旦重新加载就会被清空。
  2. 因此,它将打开一个具有相同链接的新选项卡。使用第一个选项卡的控制台可以轻松控制第二个选项卡。

【讨论】:

    【解决方案2】:

    这是伙计! (第 4 点针对这个特定问题)

    1)。如果您想一遍又一遍地重新加载相同的窗口,那么只需执行
    window.location.reload()

    2)。如果你想从服务器硬重新加载然后执行
    window.location.reload(true)
    (基本上,只需将true 作为布尔参数传递给同一行代码)

    3)。如果您想在超时的情况下完成与第 1 点和第 2 点相同的工作。即在一段时间后执行重新加载,然后执行
    setTimeout("window.location.reload()",10000);
    (这应该在 10 秒后在窗口上执行。只需一次)

    4)。如果您想在一定的超时时间内继续重新加载窗口,请执行
    setInterval("window.location.reload()",10000);

    (这应该在 10 秒后在窗口上执行。间隔为 10 秒)


    当然,有很多方法可以传递回调..
    setInterval(function(){window.location.reload();},10000);
    要么
    <code>
    function call1(){
      location.reload(true);
    }
    setInterval(call1,10000);
    </code>
    

    注意:
    -查看 [setTimeout][1] 和 [setInterval][2] 函数的 MDN 指南。
    - 使用window 对象是可选的,但很好用。 (window 是一个全局对象,并且已经可用于您当前的窗口。)

    【讨论】:

      【解决方案3】:

      当您的 URL 有参数时,使用 location = '' 似乎在 IE8 中不起作用。页面在没有任何参数的情况下重新加载。

      以下代码对我有用:

      <script type="text/javascript">
        setTimeout(function(){
            window.location.href = window.location.href;
        },10000)
      </script>
      

      【讨论】:

        【解决方案4】:
        <script type="text/javascript">
            setTimeout(function () { 
              location.reload();
            }, 60 * 1000);
        </script>
        

        setTimeout 将在指定的毫秒数后reload 页面,因此60 * 1000 = 1m。此外,由于页面正在刷新,超时将始终在页面加载时设置。

        【讨论】:

        • 应该将其更改为 setTimeout。并告诉他把它放在页面的代码中,而不是放在控制台或其他东西中。
        【解决方案5】:

        您不需要在 body 标记中包含代码。只需在下面添加这个 sn-p,无论它在页面的哪个位置,它都应该可以工作。

        <script type="text/javascript">
            setInterval('window.location.reload()', 60000);
        </script>
        

        只要您可以在某些地方访问 HTML,并且您的编辑器不会过滤掉标签,您应该没问题。如果您的编辑器有一个单独的 JavaScript 代码区域,那么只需输入 setInterval 行。 :)

        【讨论】:

          【解决方案6】:

          只需将此代码插入页面中的任何位置:

          <script type="text/javascript">
            setTimeout(function(){
              location = ''
            },60000)
          </script>
          

          【讨论】:

          • 如果我只想在特定的 URL 上进行这项工作。我问我想在 Special:MyPage/common.js 上为自己在 MediaWiki 网站上使用它,以便仅在我坐在 Special:Watchlist 等待响应时刷新。
          • 也许你可以做类似if (location == 'your url') { setTimeout(...,60000) }
          • 能否请您详细说明为什么此代码会执行整个页面的重新加载?
          • 'setTimeout' 函数只调用一次对吗?那么如何以time0ut的间隔更新屏幕。
          猜你喜欢
          • 1970-01-01
          • 2012-04-16
          • 2016-11-26
          • 1970-01-01
          • 1970-01-01
          • 2018-05-02
          • 1970-01-01
          • 2016-07-02
          • 2014-10-09
          相关资源
          最近更新 更多