运行 ajax 函数以每 3 秒检查一次 json 响应
Run a ajax function to check a json response every 3 seconds
我想检查我的用户是否使用 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 变量是否已初始化。
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 在上一次响应时隐藏Qualtrics项目-Javascript
- 运行 ajax 函数以每 3 秒检查一次 json 响应
- 如何使用 Ajax 一次仅按顺序发布数组的 1 个值,并在继续之前等待响应
- 每 XX 秒调用一次 GET API,并将 JSON 响应放入 CSV 中
- mobilesafari 5在下一次行动之前没有响应js事件
- 需要xml数据来保持每2秒POST一次,直到收到响应
- Ajax响应只工作一次-使用PHP的购物车
- AJAX请求的响应只显示一次
- jQuery中的调用函数ajax成功响应工作一次,而不是两次
- 当多个API调用时,只运行一次响应拦截器
- 烬:每5秒轮询一次api,但要在获得前一次调用的响应之后
- setInterval响应仅一次,而不是1000
- iPad上的响应式设计只适用于一次