即时通讯方法setTimeOut有问题,它调用函数self并设置一个延迟,函数应该在每次请求完成后反复调用,但它只运行一次。它可以在不使用backbone.js的情况下运行,不知道在与backbone.js集成之后它不起作用。任何帮助表示赞赏!骨干javascript setTimeOut方法
所以这是一个在客户端运行GET请求的函数从服务器获取数据,请求在一个时间间隔内运行(在服务器中决定),一旦数据进入,客户端获取它并且请求运行再次之后。
getRequest:function() {
var XHR = $.ajax({
url: '/nextdocument',
type: 'GET',
async: true,
cache: false,
timeout: 11000,
success:function(data) {
var name = data.description;
var price = data.price;
console.log("read--> " + name + price);
setTimeout("this.getRequest", 1000);
if (data.ok == "true") {
data["ok"] = data.ok;
$.ajax(
{
url: "/customerdone",
data: JSON.stringify(data),
processData: false,
type: 'POST',
contentType: 'application/json'
}
)
}else{
//no document if no read in
console.log("error--> " + data.errorMessage)
}
}
})
return XHR;
}
你是什么意思: if(data.ok =='true'){ data ['ok'] = data.ok; 。 。 } ?需要吗? –
在setTimeout中,不要使用字符串,使用像'setTimeout(function(){namespace.getRequest()},1000)这样的匿名函数;''namespace“是一个占位符,无论您的包的名称是什么调用getRequest。 – jmort253