我的网页上有一个按钮。如果用户单击它,则任务启动并返回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
答案 0 :(得分:1)
由于setInterval()
接受了一个函数或代码,但是你传递了一个jqXHR对象,你必须得到错误。
func是您想要重复调用的函数
备用语法中的代码是您希望重复执行的一串代码(建议不要使用此语法,原因与使用eval()相同)
使用
var stateCheck = setInterval(function(){
$.ajax({
url: "/check-taskstate/"+data.task_id,
dataType: "json",
success: function(data){
if (data.updated == 'true') {
clearInterval(stateCheck);
window.location.reload();
}
}
});
}, 1000); //stateCheck