【问题标题】:Refresh just home page只刷新主页
【发布时间】:2014-12-17 11:06:22
【问题描述】:

我目前正在设计一个系统,其中包含一个主页,该主页仅向登录者显示他们必须做的工作。我被要求设置此主页以每 3 分钟刷新一次,我已使用此代码完成:

function startTimer() {
 var now = new Date();
 var minutes = now.getMinutes();
 var seconds = now.getSeconds();
 var secTime = minutes*60*seconds;

 if(secTime % (3*60) == 0){
  var refreshTime = 3*60*1000;

 } else {
  var refreshTime = (secTime % (3*60))  * 1000;
 }
setTimeout('refresh()', refreshTime);}

function refresh() {
 window.location.href = 'myURL';

}

startTimer();

我目前遇到的问题是,当我离开此页面但仍在系统中时,它不断将我返回到主页并且我丢失了我正在处理的内容。 有没有一种方法可以让那些没有离开它的人保持刷新主页并在有人离开时停止它?

我对 Javascript 很陌生,所以如果我问了很多问题,请耐心等待。 预先感谢您提供的任何帮助。

【问题讨论】:

    标签: javascript refresh


    【解决方案1】:

    我假设您在网站的所有页面上都使用共享的 javascript 文件,这就是计时器将在每个页面上保持运行的原因。您可以通过检查页面 url 并在此检查中包装您的 startTimer 函数来确保计时器仅在主页上运行:

    if (document.location.href == "http://www.yourhomepage.com"){
        startTimer();
    }
    

    http://www.yourhomepage.com 替换为您的主页所在的任何网址。这仅在您的页面是单独的 html 文件时才有效。如果您使用的是不改变文档的 hashbang 方法,这将不起作用。

    【讨论】:

      【解决方案2】:

      您可以使用 Ajax 来刷新页面的工作日志部分,而不是刷新整个页面。

      【讨论】:

        【解决方案3】:

        当您刷新页面时,由于window.location.href = 'myURL';,您的代码会将您重定向到您的主页。位置发生变化,它每次都会将您重定向到“myURL”。

        您只想刷新页面的一部分。您必须发送一个 XMLHttpRequest 或 Ajax 请求(您将一个页面加载到您的当前页面而不重新加载您的当前页面)。 https://developer.mozilla.org/fr/docs/XMLHttpRequest

        加载页面后,将加载的文本插入页面。

        然后,调用发送请求的函数,像这样的每个“刷新时间”

        function sendAjax(){
         // ... ajax request
         // refreshTime = 3 * 60 * 1000; 
         setTimeout( sendAjax, refreshTime );
        }
        
        sendAjax();
        

        不要在 setTimout 中的函数名周围使用引号。 setTimemout 需要一个函数来调用(不是他的名字而是他的值)和时间参数。

        【讨论】:

          猜你喜欢
          • 2021-11-04
          • 1970-01-01
          • 2012-01-31
          • 2021-05-03
          • 1970-01-01
          • 2023-01-11
          • 1970-01-01
          • 2020-09-18
          • 1970-01-01
          相关资源
          最近更新 更多