Javascript 每3秒运行一次ajax函数以检查json响应
我想检查我的用户是否使用javascript从另一个系统更新 我需要帮助编写一个检查json响应的函数。是真是假 urlJavascript 每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');
/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);