我有點綠,所以請耐心等待。JQuery AJAX輪詢語法
我需要輪詢SharePoint webservice,直到它返回一個值。我相信我已經錯誤地格式化了我的代碼。如果有預先存在的線程解決這個問題,請將它指向我;我相對有限的理解可能使我無法識別它。
function Poll2(){
$.ajax({
//Use an ABSOLUTE reference to your target webservice
url: "https://mydomain.com/Sandbox/bitest/_vti_bin/lists.asmx",
type: "POST",
dataType: "xml",
data: soapEnv,
success:processResult,
complete: Poll2,
timeout: 5000,
contentType: "text/xml; charset=\"utf-8\"",
async: true
});
}
我的願望是,它會輪詢服務每5秒鐘,直到成功,此時它會繼續,所有的數據都將被處理的「processResult」功能。我害怕我通過引用父函數創建了一個無限循環。
-------------------編輯&新規範-------------------
我發現了一個解決方案in this blog post大致完成我在找什麼。事實證明,我真的只希望我的請求發射一次。然而,對於一個「無限」的輪詢例程來說,這個工作非常好。
(function poll() {
setTimeout(function() {
$.ajax({
type: 'POST',
dataType: 'json',
url: 'http://somewhere.com/rest/123',
success: function (data) {
MyNamespace.myFunction(data); //DO ANY PROCESS HERE
},
complete: poll
});
}, 5000);
})();
我會注意,但是,它執行後,這個程序不初始化它的第一個民意調查,直至5秒。簡單的代碼雖然!非常感謝作者。
因此,如果嵌套在AJAX方法之上的「if」語句中的「返回」命令可以使我擺脫這種困境?我可以檢查一下這種方法是否成功?原諒我的綠色。 – Shrout1 2012-08-14 13:16:40