渔公
渔公
  • 发布:2015-03-13 17:04
  • 更新:2015-11-12 17:51
  • 阅读:2416

我需要ajax同步来解决一个特殊问题,怎么办

分类:MUI

我要实现的问题是:
某新闻列表页面,采用下拉加载分页,里面有两个ajax,第一个ajax获取1条特殊数据显示(头条新闻),第二个ajax获取10条。下拉后调取第二个ajax函数,加载下一个10条。由于采用的异步,经常会出现(头条新闻)数据一会儿在最前面,一会儿在第11条处。有什么办法保证第一个ajax显示成功了后才显示第二个ajax调取的内容?

----------------------晚上修改:

  • 已经解决了!思路是:
  • 设置一个标识变量var s=false;
  • 上拉加载函数:
  • function pullupRefresh() {
    if(!s){ ajaxA函数}
    else{ajaxB函数;}
    }

ajaxA函数{
.......
ajaxB函数
}

ajaxB函数{
...
s=true;
}

这样初始的时候ajaxA执行一次,显示头条,之后提取10条显示,标识s变为true
待上拉后,就不再执行if而是执行else,即直接执行ajaxB函数。搞定!

2015-03-13 17:04 负责人:无 分享
已邀请:
deiphi

deiphi

用回调函数啊,在第一次成功后再发起第二次请求。

  • 渔公 (作者)

    我明白你的意思,在第一个ajax回调函数里调用第二个ajax,但是第一个ajax实际是只执行一次的,第二个ajax是根据下拉加载多次执行的。这样不行。

    2015-03-13 17:34

  • deiphi

    操作dom就可以了,在下拉刷新之后再把头条新闻移动顶部。类似jquery的prepend方法。

    2015-03-13 17:41

  • 渔公 (作者)

    回复 deiphi: 采用另外一种方式解决了。看我原文的修改内容部分。

    2015-03-13 21:14

Kwela

Kwela

其实很简单,mui和jQuery是兼容的,你直接调用jQuery 的ajax就可以,然后设置async: false,

小智科技

小智科技

能否分享下B的代码呢

该问题目前已经被锁定, 无法添加新回复