【发布时间】:2015-01-19 14:58:21
【问题描述】:
我的网页上有一个按钮。如果用户单击它,任务将启动并返回一个 ID。我想用这个 ID 在另一个 ajax 调用中检查任务的进度,让用户知道任务是否完成。
我试过这个,但我认为它不是正确的方法:
<script type="text/javascript">
$(document).ready(function() {
$('#get-user-transactions').click(function() {
$( "#user-transactions" ).after( "<p>Loading data</p>" );
$.ajax({
url: "/start-task/",
dataType: "json",
success: function(data){
if(data) {
var stateCheck = setInterval(
$.ajax({
url: "/check-taskstate/"+data.task_id,
dataType: "json",
success: function(data){
if (data.updated == 'true') {
clearInterval(stateCheck);
window.location.reload();
}
}
})//ajax
, 1000); //stateCheck
}
}
})//ajax
});
});
</script>
编辑
我更新了我的代码,所以第一个 url 也给出了一个 json 响应。但如果我尝试我的代码,我会收到此错误:
Uncaught SyntaxError: Unexpected identifier
【问题讨论】:
-
你用setinterval做什么?
-
这段代码不起作用吗?问题出在哪里?
-
@Mohamed-Yousef 我需要每秒检查一次
/check-taskstate/<ID>,看看任务是否完成 -
这似乎是一个代码审查任务,因为 OP 没有处理任何错误
-
这可能是将原始
$.ajax放入 setInterval 的全部问题。将其包装在一个匿名函数中,看看会发生什么。
标签: javascript jquery ajax