我想检查我的用户是否使用 javascript 从另一个系统更新。
我需要帮助编写一个检查 json 响应的函数。是真是假。
url /user/updatecheck/
有一个如下所示的 json 响应:{"updated": "true"}
或{"updated": "false"}
<script type="text/javascript">
$(document).ready(function() {
var updated='2013-01-02T10:30:00.000123+02:00'; //user variable from the system, will be empty if the user is not updated
if (!updated){
$('#not-updated').modal('show');
var updatedCheck = window.setInterval(
$.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); //Hoping this is the function to check the url every 3 seconds until it returns true
}
});
$(document).ajaxStop(function(){
window.location.reload();
});
</script>
它似乎不起作用。不确定我的 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 请求接收的数据通过成功回调函数的 data 参数返回,因此您可以使用它。尝试将数据结果打印到控制台(即 console.log(data);
)或提醒它(即 alert(data);
)。例如,您可能需要调用 data.update。我不确定您在 if 条件中使用的 json 变量是否已初始化。