JavaScript / Ajax - 检查另一页上的数据是否不同

时间:2013-07-23 16:08:36

标签: javascript jquery ajax

我有一个名为getlastupdate.php的页面,它保存了最后一个日期&有人更新数据库的时间,当你访问该页面时,你会得到这样的东西:

2013-07-23 10:43:37

我正在尝试做的是当我加载主页面时我希望javascript获取上述日期和时间并将其存储在var中然后使用ajax继续检查页面'getlastupdate.php'的日期/时间并将其与var进行比较,如果日期/时间相同则不做任何事情,但如果它们不是那么警告消息然后将var更新为最后的日期/时间。

以下是我的尝试:

 <script type="text/javascript">

var comper;
$.get('getlastupdate.php', function(comperNow) {  // comperNow is the latest date/time var
// remember the date/time in var called: comper
comper = comperNow;
}
)

function mycode() {
// keep checking this page for the date/time
$.get('getlastupdate.php', function(comperNow) {
// if comper is not the same as comperNow
if (comper!=comperNow){
// show a message to the visitor
alert('New Info Added');
// and update comper to show the date/time from comperNow
comper = comperNow;
}
}
)

tid = setTimeout(mycode, 2000); // repeat myself
}
function abortTimer() { // to be called when you want to stop the timer
clearTimeout(tid);
}

            </script>

感谢!!!

2 个答案:

答案 0 :(得分:1)

声明var comper;全球 像这样:

var comper;
$.get('getlastupdate.php', function(comperNow) {  // comperNow is the latest date/time var
// remember the date/time in var called: comper
comper = comperNow;
}

答案 1 :(得分:1)

以下代码为我工作。我认为最大的问题是使用setTimeout而不是setInterval。

var comper;
function checkComper() {
  var onResponse = function(comperNow) {  // comperNow is the latest date/time var
    //check if comper has been set / first time method is called
    if (comper === undefined) {
      comper = comperNow;
      return;
    }

    if (comper !== comperNow) {
      // show a message to the visitor
      alert('New Info Added');
      // and update comper to show the date/time from comperNow
      comper = comperNow;
    }
  };
  $.get('getlastupdate.php', onResponse);
}

var tid = setInterval(checkComper, 2000); // repeat myself