即時通訊方法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