求助:Jquery ajax 每4s请求一次,多次返回的数据如何保证处理完一个再处理下一个

安生yeah 2018-11-23 02:12:58
jq ajax 请求成功后每4s再次发送请求,多次请求,有的单次返回的数据过多,4s内处理不完,导致新旧数据混淆处理。

希望的效果是,依旧每4s请求一次,但是返回的每次数据处理完再处理下一个。

了解:我了解的处理方法:① 添加延时器   ② 运用ajax 队列  

困惑:由于ajax不是很熟悉,不知该怎么处理。
请求帮助,谢谢!

代码如下:

function getNextAjax(url){
        setTimeout(function(){
            getAjax(url,"url="+encodeURIComponent(g_url+"&starttime="+getDatetime(g_starttime)));
            showTop();
        },4000);
    }

function getAjax(url,query){
        $.ajax({  
            type: "get",  
            url: url, 
            cache: false,  
            dataType: "json",  
            data: query,
            timeout: 2000,    
            complete: function(XMLHttpRequest, textStatus) {
                getNextAjax(url);
            },
            success: function(data){
                try{
                    getSet(data);
                }catch(e){
                }
            }
        });
    };
...全文
278 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2018-11-25
  • 打赏
  • 举报
回复
可以每次都处理完之后再用setTimeout进行下一轮计时。
function getNextAjax(url){
        setTimeout(function(){
            getAjax(url,"url="+encodeURIComponent(g_url+"&starttime="+getDatetime(g_starttime)));
        },4000);
    }

function getAjax(url,query){
        $.ajax({  
            type: "get",  
            url: url, 
            cache: false,  
            dataType: "json",  
            data: query,
            timeout: 2000,    
            success: function(data){
 	            showTop();
                try{
                    getSet(data);
                }catch(e){
                }
                getNextAjax(url);
            }
        });
    };

一念工作室 2018-11-25
  • 打赏
  • 举报
回复
function sleep(numberMillis) { 
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
}

sleep(4000);
fighting_1982 2018-11-24
  • 打赏
  • 举报
回复
请求返回后记录下这次请求的发起时间。发起请求时,把当前时间和之前反回的请求时间进行比较,如果大于4秒就不执行。

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧