使用setInterval对ajax请求做轮询
生活随笔
收集整理的這篇文章主要介紹了
使用setInterval对ajax请求做轮询
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么setInterval 只執行了一次??
代碼如下
<script language=javascript>
? ? $(function () {
? ? ? ? var test = {
? ? ? ? ? ?deg: function (type) {
? ? ? ? ? ? alert(type);
? ? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? ?setInterval(test.deg(12), 1000);
? ? ? });
</script>
解決辦法:
setInterval(function () { test.deg(12)}, 1000);這樣就可以了。
當然實現這種輪詢的另一種思路是,使用遞歸,然后設置一個休眠時間。
當條件達到臨界值時,取消
window.clearInterval(clock);代碼:
var url = 'rest/services/Tools/submitJob';var clock=null; ajaxfunc(url, 'POST', restData, function (res) { //運行分析 console.log(res.jobId);var jobId = res.jobId;//var url = adminURL + "rest/services/Tools/jobs/" + jobId; //location.href = url; clock = window.setInterval(function () { result(jobId)}, 5000);});var result = function(jobId) {var url = adminURL + "rest/services/Tools/jobs/" + jobId;$.ajax({type: "POST",url: url,dataType: 'json',data: {f: 'json',token: token },success: function (data) {var jobStatus = data.jobStatus;if(jobStatus =='esriJobSucceeded'){var output = url + '/results/output';var resultOutput;$.ajax({type: "POST",url: output,dataType: 'json',data: {f: 'json',token: token },success: function (data) {resultOutput = data.value.url;alert(resultOutput)window.clearInterval(clock);},error:function(){alert("error")window.clearInterval(clock);}});}if(jobStatus =='esriJobFailed'){alert("esriJobFailed")window.clearInterval(clock);} },error: function () {alert("error")window.clearInterval(clock);}});};
總結
以上是生活随笔為你收集整理的使用setInterval对ajax请求做轮询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据的统计特性
- 下一篇: 傅立叶变换学习(一)初步认识傅立叶变换