我有点绿,所以请多多包涵。
我需要轮询 SharePoint Web 服务,直到它返回一个值。我相信我的代码格式不正确。如果有一个预先存在的线程可以解决这个问题,请指出它;我相对有限的理解可能使我无法识别它。
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”函数。恐怕我通过引用父函数创建了一个无限循环。
-------------------编辑和新代码-------------------
我在这篇博客文章中找到了一个大致完成我正在寻找的解决方案。事实证明,我真的只希望我的请求触发一次。但是,对于“无限”轮询例程,这可以很好地完成工作。
(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 秒才初始化其第一次轮询。一段简单的代码!非常感谢作者。