我曾经为Mozilla Developer Network 开发一个新功能,它需要加载一个基本的脚本文件的同时加载一个JSON请求。因为我们使用的是jQuery,意味着要使用 jQuery.getScript和jQuery.getJSON。我知道这两者都是异步的并返回一个Deferred(jQuery中的Promise模式实现, 参见: deffered object)对象,因此我想知道能不能在一个回调里按顺序请求它们,就像多数的JavaScript加载器那样(如curljs )。我很幸运,使用jQuery就可以用一个回调处理两个请求。

  jQuery的JavaScript代码

  就像我刚才提到的,我需要加载一个脚本和一个JSON文件,就像这样:

$.when($.getScript('/media/js/wiki-min.js?build=21eb633'),$.getJSON('https://developer.mozilla.org/en-US/demos/feeds/json/featured/')
).then(function(a, b) {// 或者 ".done"// 好了,东西都加载好了,可以干活了});

  当资源文件加载完时,done或者callback就会被触发,我就知道已经请求完了。每一个请求都返回了不同的回调参数,如上面的返回参数就像这样:

// [response, state, jqxhr], [response, state, jqxhr]
["(function(c){var e=c(".from-search-navigate");if(e…;if(j){g.apply(m,l)}}}})(window,document,jQuery);", "success", Object] [Array[15], "success", Object]

  如果我们希望再加载一个传统的Ajax请求,就像获取一个HTML模板,我们可以这样:

$.when($.getScript('/media/js/wiki-min.js?build=21eb633'),$.getJSON('https://developer.mozilla.org/en-US/demos/feeds/json/featured/'),$.get('/')
).then(function(a, b, c) {console.log(a, b, c);
});

  Dojo Toolkit很早以前就有类似的功能了,但是我不知道现代jQuery也可以。在一个回调中处理多个请求在请多场合需要用到,可以看出jQuery也在与时俱进。

  原文 davidwalsh.name

jQuery:在一个回调中处理多个请求相关推荐

  1. 如何在jQuery中发送PUT / DELETE请求?

    GET : $.get(..) POST : $.post().. 那PUT/DELETE呢? #1楼 您可以在数据哈希中包含一个名为:_method的键,其值为'delete'. 例如: data ...

  2. jquery中的ajax 网络请求

    最近把多年前的点滴知识整理分享出来,大家多多交流哈 岁月如梭,不知是何时的整理了 网易云[玩转大前端]课程 EDU配套 教程 1.GET请求 1.1 get String 请求 请求语法格式 /*** ...

  3. jQuery循环一个列表,并将其数值合并在一个数组中

    html部分: <ul><li><input type="text" name="" id="" value= ...

  4. html ajax实现ntlm,jquery – 在一个页面上通过AJAX POST获取NTLM挑战

    这里的奥秘很神秘.我有一个使用Windows身份验证的ASP.NET MVC 4 Web应用程序,已保存超过18个月没有问题.最近,它被部署到一个新的网站,我遇到了以下,非常奇怪的行为. 我使用一个j ...

  5. JavaScript中的HTTP GET请求?

    我需要在JavaScript中执行HTTP GET请求. 最好的方法是什么? 我需要在Mac OS X破折号小部件中执行此操作. #1楼 上面有很多很棒的建议,但不是很可重用,并且经常被DOM废话和其 ...

  6. ajax一次请求多条记录,Jquery 一次处理多个ajax请求的代码

    Jquery 一次处理多个ajax请求的代码 复制代码 代码如下: $(document).ready(function () { $('#getsetgo').click(function () { ...

  7. ajxs跨域 php_PHP项目中是如何处理Ajax请求与Ajax跨域的

    PHP项目中是如何处理Ajax请求与Ajax跨域的 发布时间:2020-12-14 16:35:47 来源:亿速云 阅读:98 这期内容当中小编将会给大家带来有关PHP项目中是如何处理Ajax请求与A ...

  8. 如何让jQuery执行同步而不是异步的Ajax请求?

    我有一个提供标准扩展点的JavaScript小部件. 其中之一是beforecreate函数. 它应该返回false以防止创建项目. 我已经使用jQuery在此函数中添加了Ajax调用: before ...

  9. jQuery AJAX回调函数this指向问题

    了解JavaScript的人都知道JavaScript的this不总是指向当前对象,函数或类中的this指向与调用这个函数的对象以及上下文环境是息息相关的.如在全局作用域调用一个含this的对象,此时 ...

最新文章

  1. ExtJS4.2学习 php版(八)
  2. leetcode 399. 除法求值(bfs)
  3. Bootstrap(二)—格栅系统!
  4. python数据算法有哪些_python算法与数据结构-常用查找算法一(37)
  5. 产品经理须知 | API接口知识小结
  6. 云原生 云计算_使云原生计算具有普遍性和可持续性
  7. win8 开发之旅(3) --五子棋游戏开发 前奏
  8. apache---httpd.conf详解
  9. 集中式 vs 分布式 版本控制
  10. 关于EXP-00056: 遇到 ORACLE 错误 1455 ORA-01455: 转换列溢出整数数据类型 EXP-00000: 导出终止失败 的问题解决方法整理
  11. libjingle源码解析(3)-【PseudoTcp】建立UDP之上的TCP(1):连接和关闭
  12. 送起来oracle,十一,送你 51 个 Oracle 常用语句~
  13. 百鸡问题的四种(层)解法
  14. SerDes知识详解
  15. Android之ListView
  16. CVF转IVF可能遇到的问题
  17. vue+element实现美观大方好看的音乐网站,仿照咪咕音乐网
  18. 信用社计算机专业大纲,信用社计算机专业试题
  19. 《Python 深度学习》6.1.3 整合在一起:从原始文本到词嵌入
  20. 怎么减少if()---else操作,优化代码

热门文章

  1. 如何在ubuntu下安装detectron2_ubuntu16.04安装detectron教程
  2. Netty详解(五):Netty TCP粘包 拆包
  3. oracle php 执行时间,在执行Oracle pl/sql-oci8的PHP中,什么时候执行自动回滚?
  4. 20190318-使用类做一个简单的图书馆管理系统
  5. Ubuntu 16.04安装VirtualBox 5.1实现无缝模式
  6. 打jar时包含所有依赖(maven-assembly-plugin)
  7. GitHub上值得关注的iOS开源项目
  8. 利用关系数据库开展智能化营销新思路详解
  9. 多线程下使用Jedis
  10. 微软系统工具套件SysinternalsSuite各个工具功能说明