开发者社区> 问答> 正文

jquery ajax返回数据次序一问? 400 报错

jquery ajax返回数据次序一问? 400 报错

近日在开发一应用,在前端使用  jquery ajax返回数据时,返回同一格式的数据次序不一,请问如何解决呢?已经使用 settimeout,但是不行。。。。

例如:打开页面后需要向ajax发送连续请求取得数据,js里面已经使用循环for执行请求,但是每当刷新页面时,得到的数据不是按循环的次序。。请问有方法可解决吗?

代码事例:

function 抓羊(s){

    $.ajax{

        请求一只羊        

        success:function(羊){

                返回一只羊;

        })

        如果抓不到会返回失败或者0

}

期间代码省略。主要显示执行时

var wolf = 狼;

for(i=0;i<wolf.length;i++){

    如果肚子饿了就 抓羊(i);

}

按情况应该有多少只狼就能抓多少的羊,是按次序的,可是实际情况好像是随机的,每次刷新页面次序都不一样。。。求解。。

临时解决方法是,先规划抓羊后存放的位置,然后对应存放。。。

展开
收起
爱吃鱼的程序员 2020-06-05 13:43:36 521 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    应该是:asyn=true,表示异步(默认),可设置成false试试。######ajax 本来就是异步的,你不可能保证返回结果的顺序
    ######有设置成同步的参数,设置下试试。######

    同步的话,页面就卡住了。
    你可以设置一个任务队列,数组就能搞定了。每次ajax请求回调执行后,检测任务队列还有任务没。照上面的例子,就是狼要抓羊,先排队,一个抓完后另一个继续抓。每只狼抓羊的速度都不一样(请求从发送到获取到返回信息再执行回调的时间),这个速度也不是每次都一样的,你同时放出几只狼,当然会有先后的区别了。
    同步会降低页面操作的流畅性,非必要情况不建议使用。

    还有就是用批处理,将多个请求合成一个,直接告诉后台,有N只狼要抓羊,后台看着办。这个需要修改你的后台代码。但是在有多次页面操作的时候,还是要用队列,每次N只狼,这个是前台代码修改。

    2020-06-05 13:43:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载