【发布时间】:2012-08-13 19:39:31
【问题描述】:
我有点绿,所以请多多包涵。
我需要轮询 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”函数。恐怕我引用父函数创建了一个无限循环。
-------------------编辑和新代码-------强>
我找到了一个解决方案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 秒才初始化它的第一次轮询。一段简单的代码!非常感谢作者。
【问题讨论】:
标签: javascript jquery ajax polling