[关闭]
@brizer 2016-03-16T17:01:43.000000Z 字数 748 阅读 1378

jQuery异步编程之when用法


前言

我们有时候会有一些需求就是某些异步操作比如ajax完成后再执行某些操作。一般我们可以通过ajax方法的done方法来回调。但是如果是多个ajax呢?


以一个实例来说明:

  1. $.when($.ajax({
  2. url:"http://study.163.com/cps/personal/info.htm",
  3. method:"GET",
  4. data:''
  5. }),$.ajax({
  6. url:"http://study.163.com/cps/personal/courseCard.htm",
  7. method:"GET",
  8. data:{"productType":30,"ids":$list_1.data("ids")}
  9. }),$.ajax({
  10. url:"http://study.163.com/cps/personal/courseCard.htm",
  11. method:"GET",
  12. data:{"productType":0,"ids":$list_2.data("ids")}
  13. }))
  14. .done(function(d1,d2,d3){
  15. personInfo = JSON.parse(d1[0]);
  16. initData();
  17. cardsInfo = JSON.parse(d2[0]);
  18. initYoocCards(cardsInfo);
  19. studyCardsInfo = JSON.parse(d3[0]);
  20. initStudyCards(studyCardsInfo);
  21. initEvents()
  22. });

可以看到,我们通过在when中注册多个ajax,然后done后再执行后续操作。
其中的d1,d2,d3分别是3个ajax的返回结果。我们去d1[0]的原因是它才是最后的数据集合,d1[1]则是success的状态值。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注