Javascript 每3秒运行一次ajax函数以检查json响应

Javascript 每3秒运行一次ajax函数以检查json响应,javascript,ajax,Javascript,Ajax,我想检查我的用户是否使用javascript从另一个系统更新 我需要帮助编写一个检查json响应的函数。是真是假 url/user/updatecheck/有如下json响应:{“updated”:“true”}或{“updated”:“false”} $(文档).ready(函数(){ var updated='2013-01-02T10:30:00.000123+02:00';//如果用户未更新,则系统中的用户变量将为空 如果(!已更新){ $(“#未更新”).modal('show');

我想检查我的用户是否使用javascript从另一个系统更新

我需要帮助编写一个检查json响应的函数。是真是假

url
/user/updatecheck/
有如下json响应:
{“updated”:“true”}
{“updated”:“false”}


$(文档).ready(函数(){
var updated='2013-01-02T10:30:00.000123+02:00';//如果用户未更新,则系统中的用户变量将为空
如果(!已更新){
$(“#未更新”).modal('show');
var updatedCheck=window.setInterval(
$.ajax({
url:“/user/updatecheck/”,//返回{“updated”:“true”}或{“updated”:“false”}
数据:dataString,
数据类型:“json”,
成功:函数(数据){
if(json.updated=='true'){//不确定这是否是正确的方法
window.clearInterval(updatedCheck);
//用户已更新-页面需要重新加载
}
}//成功
})
,3000);//希望这是每3秒钟检查一次url的函数,直到返回true为止
}
}); 
$(文档).ajaxStop(函数(){
window.location.reload();
});

它似乎不起作用。不确定我的ajax函数是否正确,我只在用户最初没有更新的情况下获得模式窗口,并且如果url
/user/updatecheck/
返回true,页面不会重新加载。

将jQuery ajax函数作为setInterval的一部分调用的方式不正确。请尝试将其放置在函数中

var updatedCheck = window.setInterval(    
        function(){$.ajax({
                    url: "/user/updatecheck/", //Returns {"updated": "true"} or {"updated": "false"}
                    data: dataString,
                    dataType: "json", 
                    success: function(data){ 

                       if (json.updated == 'true') { //not sure if this is the correct method
                           window.clearInterval(updatedCheck);
                           //The user is updated - the page needs a reload
                       }
                    } //success

                })}
        , 3000);

您将从ajax请求接收的数据通过成功回调函数的数据参数返回,因此您可以使用它。尝试将数据结果打印到控制台(即
console.log(数据);
)或向其发出警报(即
alert(数据);
)。例如,您可能需要调用data.updated。我不确定您在if条件中使用的json变量是否已初始化。

每半秒检查一次可能有点过分。也许您应该使用keep-alive请求。@EdsonMedina:有关于如何使用keep-alive的提示吗?有。我删除了
数据:dataString
并更改了
json后,这个功能就可以工作了。将
更新为
updated
@Garreth00您可以使用计数器并仅检查特定的次数示例。或者,您可以使用日期变量并检查特定的时间量。
var updatedCheck = window.setInterval(    
        function(){$.ajax({
                    url: "/user/updatecheck/", //Returns {"updated": "true"} or {"updated": "false"}
                    data: dataString,
                    dataType: "json", 
                    success: function(data){ 

                       if (json.updated == 'true') { //not sure if this is the correct method
                           window.clearInterval(updatedCheck);
                           //The user is updated - the page needs a reload
                       }
                    } //success

                })}
        , 3000);