原文链接:jQuery: Multiple AJAX and JSON Requests, One Callback

原文日期: 2014年4月15日

翻译日期: 2014年4月22日

翻译人员: 铁锚



我在为  Mozilla Developer Network(Mozilla开发人员社区) 写代码时须要载入的一个普通的的脚本文件,以及一个JSON流。 由于我们使用jQuery,这意味着须要调用
jQuery.getScript 和 jQuery.getJSON 函数。 我知道这些函数都是异步运行(asyncronously)而且会延迟一段时间返回,所以我想知道是否有一种方式,使我能够使用单个回调,并行地载入它们,就像JS载入器
curljs 所做的那样。 非常幸运! 通过jQuery.when, 我能够并发地载入两个请求,仅仅运行一次回调!

jQuery 脚本

正如我提到的,以下是载入脚本和一个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"
// Yay, 载入完毕,此处我们能够运行一些依赖操作。。 。
});

当资源载入完毕, 指定的 done 或者
then 回调会触发,因此能够知道请求已经完毕。 每一个请求返回的回调參数对象类型不同,因此上述请求可能返回例如以下信息:

// 格式: [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 XHR请求,比方说一个小部件模板,我们能够这样做:

$.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绝对是与时俱进的!

jQuery:多个AJAX/JSON请求相应单个回调的更多相关文章

  1. jQuery:多个AJAX/JSON请求对应单个回调并行加载

    因为我们使用jQuery,这意味着需要调用 jQuery.getScript 和 jQuery.getJSON 函数. 我知道这些函数都是异步执行(asyncronously)并且会延迟一段时间返回, ...

  2. jQuery:多个AJAX/JSON请求对应单个回调

    原文链接:jQuery: Multiple AJAX and JSON Requests, One Callback 原文日期: 2014年4月15日 翻译日期: 2014年4月22日 翻译人员: 铁 ...

  3. jQuery 发送 ajax json 请求。。

    $.extend({ postJson: function (data) { data = data || {} $.ajax({ type: "POST", url: data. ...

  4. 玩转Web之Json(二)----jquery easy ui + Ajax +Json+SQL实现前后台数据交互

    最近在学Json,在网上也找过一些资料,觉得有点乱,在这里,我以easy ui的登录界面为例来说一下怎样用Json实现前后台的数据交互 使用Json,首先需要导入一些jar包,这些资源可以在网上下载到 ...

  5. jQuery 封装的ajax

    jquery封装的ajax 具体操作: $.get(url  [,data]  [,fn回调函数]   [, dataType]); data:给服务器传递的数据,请求字符串 .json对象 都可以设 ...

  6. jquery的ajax异步请求接收返回json数据

    http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...

  7. jQuery中的Ajax几种请求方法

    在网上查的几种Ajax的请求的方法: jQuery 确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯.废话少说,直接进入正题,我 ...

  8. jquery Ajax异步请求之session

    写了一个脚本,如下: $(function () { $("#btnVcode").click(function () { var receiveMobile = $(" ...

  9. jQuery中的Ajax几种请求方式

    1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) : 请求的HTML页的URL地址. data (M ...

随机推荐

  1. Linux指令详解useradd groupadd passwd chpasswd chage 密码修改

    Linux指令详解useradd groupadd passwd chpasswd chage 密码修改 http://speediness.blog.51cto.com/760841/1783661 ...

  2. 一步步疑难解析 —— Python 异步编程构建博客

    声明:该项目学习资源主要来自廖雪峰的Python教程,参见 http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6 ...

  3. elasticsearch中client.transport.sniff的使用方法和注意事项

    https://blog.csdn.net/J_bean/article/details/79507559

  4. Delphi:对TNotifyEvent的理解

    type TNotifyEvent = procedure (Sender: TObject) of object; 在Delphi中事件也是一个类,类型就是事件类型,不同的事件属于不同的类.TNot ...

  5. hdu5079

    这道题的难点在于思考dp表示什么 首先可以令ans[len]表示白色子矩阵边长最大值大于等于len的方案数则ans[len]-ans[len+1]就是beautifulness为len的方案数 白色子 ...

  6. Jquery学习之路(三) 实现弹出层插件

    弹出层的应用还是比较多的,登陆,一些同页面的操作,别人的总归是别人的,自己的才是自己的,所以一直以来想写个弹出层插件.不多废话,直接开始吧! 不想看可以在这里直接下载源码xsPop.zip 1:遮罩层 ...

  7. 蓝牙遥控小车设计(四)——Android APP遥控

    最近都没心情写博客,忙着答辩论文之类的,唉,主要是愁工作啊...... 先上车体全景图: APP截图: 上最终视频:

  8. 洛谷——P1358 扑克牌

    题目描述 组合数学是数学的重要组成部分,是一门研究离散对象的科学,它主要研究满足一定条件的组态(也称组合模型)的存在.计数以及构造等方面的问题.组合数学的主要内容有组合计数.组合设计.组合矩阵.组合优 ...

  9. Mysql数据库的安装及配置

    本文转载自http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建 ...

  10. spring boot 2.x静态资源会被HandlerInterceptor拦截的原因和解决方法

    在spring boot 1.5.x中,resources/static目录下的静态资源可以直接访问,并且访问路径上不用带static,比如静态资源放置位置如下图所示: 那么访问静态资源的路径可以是: ...