Javascript不在间隔上更新函数

时间:2013-09-19 15:48:27

标签: javascript jquery setinterval

我有一个脚本,可以查看通知中“未读”的记录数。当我使用以下代码时,页面将在页面加载时加载编号:

$(document).ready(function(){
   $("#notes_number").load("getnumber.php");
});

但是我试图让它每5秒更新一次,所以我四处寻找并找到了这个,但它没有用。我正在试图弄清楚如何让它运作起来。这是Javascript代码:

//TRYING TO GET TO UPDATE EVERY 5 SECONDS
window.setInterval(function(){
function(){
   $("#notes_number").load("getnumber.php");
}
}, 5000);




//THIS IS WHAT HAPPENS WHEN A PARTICULAR BUTTON IS PRESSED
function toggleDiv(divId) {
   $("#"+divId).show();
//GET THE NOTIFICATIONS
$(document).ready(function(){
   $("#myContent").load("getnotes.php?page=<? echo $page; ?>");
});

//RESET THE NUMBER OF NOTIFICATIONS UNREAD
$(document).ready(function(){
   $("#notes_number").load("getnumber.php");
});


}

4 个答案:

答案 0 :(得分:3)

我把代码放在2个函数里面。代码应该是:

window.setInterval(function(){
   $("#notes_number").load("getnumber.php");
}, 5000);

答案 1 :(得分:0)

你在这里有一个额外的函数声明 - 它永远不会执行:

window.setInterval(function(){

   $("#notes_number").load("getnumber.php");

}, 5000);

答案 2 :(得分:0)

IMO,你不应该那样使用setInterval。无法保证响应顺序,您应该在回调中使用setTimeout以确保在发送下一个请求之前得到响应:

function getNotes() {
    $("#notes_number").load("getnumber.php", function() {
        setTimeout(getNotes, 5000);
    });
}

getNotes();

答案 3 :(得分:0)

替换以下代码块

window.setInterval(function(){
function(){
   $("#notes_number").load("getnumber.php");
}
}, 5000);

window.setInterval(function(){
   $("#notes_number").load("getnumber.php");
}, 5000);