文档章节

顺序发送异步请求、同时发送异步请求;apply()与call()的区别

木子丰
 木子丰
发布于 2014/02/19 17:07
字数 453
阅读 67
收藏 2
点赞 0
评论 0

前台发送异步请求的情况:
1、顺序发送:A执行完了,再执行B
2、无序发送:A、B执行的顺序无所谓
3、同时发送:A、B同时执行
==========================================
对于顺序发送
$.when(A).then(function() {B});(then可换为done)
==========================================
对于无序发送
1.直接按代码顺序执行A,B或$.when(A,B)
$.when(A,B)的其它写法$.when.apply(thisArg, [A,B])$.when.call(thisArg,A,B)
2.使用Function.prototype.apply()方法:
语法:fun.apply(thisArg,argsArray)
fun为一个函数
thisArg为运行函数的作用域(或理解成调用函数的对象)
argsArray为参数任务列表,如果其长度为3,则fun函数执行3次,分别取argsArray[0],argsArray[1],argsArray[2]作为参数分别运行。

fun ... $.when
thisArg ... $
argsArray ... [A,B]

代码如下:
var tasks = [A,B];
$.when.apply($,tasks);
3.使用Function.prototype.call()方法:
语法:fun.call(thisArg,args[0],args[1],...)

其实apply()与call()本质上是一样的,只不过apply把所有的参数放到一个数组中,通过数组传递,而call需要把每个参数都详细列出,


==========================================
对于同时发送:像java的多线程一样

1,按顺序书写代码即可:A;B;因为A,B都是异步请求,请求发送后,会接着执行后面的代码
或通过setTimeout实现(感觉有点多此一举)
setTimeout(function() {A}, 10);
setTimeout(function() {B}, 10);
虽然不是真正意义上的同时执行,但是效果差不多了
==========================================


对于使用$.when方法执行异步请求后,要返回deferred对象的情况:

var deferred = new Deferred();
$.when(A,B).then(
    function() {
        deferred.resolve({});
    },
    function() {
        deferred.reject({});
    },
);
return deferred;
//由于异步的原因deferred对象会先返回,其后根据A,B的执行情况,会影响其状态:成功或失败


 

© 著作权归作者所有

木子丰
粉丝 17
博文 236
码字总数 68754
作品 0
郑州
程序员
RocketMQ源码分析(二)Producer端发送数据

1 系列 - 整体架构图- producer端发送消息- broker端接收消息- broker端消息的存储- consumer消费消息- 分布式事务的实现- 定时消息的实现- 关于顺序消费话题- 关于重复消息话题- 关于高可用...

乒乓狂魔 ⋅ 2016/10/09 ⋅ 1

OkHttp3.0-源码分析

1. OkHttp官网介绍: OkHttp: An HTTP+HTTP/2 client for Android and Java applications. 该库支持 HTTP1.0、HTTP1.1、HTTP2.0 以及 SPDY ,都在类Protocol 中声明。 2. OkHttp的基本使用:......

负了时光不负卿 ⋅ 2017/12/12 ⋅ 0

何为同步和异步

Android Telephony相关应用中,Telephony大量使用了Handler、Broadcast等通信方式,而在Android操作系统平台中的Handler消息处理、Broadcast广播消息等均采用异步通信机制,那么我们首先要清...

colorlesswind ⋅ 2015/12/03 ⋅ 0

[Ajax-相濡以沫,不如相忘于江湖] Ajax初识

Ajax的全称是 Asynchronous JavaScript And XML,即异步JavaScript和XML。2005年由Jesse James Garrett首先提出。在之后极短的时间内,Ajax被广泛应用到大量B/S结构的应用中,改进了传统的W...

LSantorini ⋅ 2016/01/26 ⋅ 0

juqery中ajax同步或异步的区别

query中ajax请求默认的是异步请求,就是当发送这个ajax请求后,在等待server端返回结果的时候,前台会继续执行ajax后面的脚本,当server端返回数据到时候,才去执行success这个回调函数 同步...

percy94 ⋅ 2016/06/24 ⋅ 0

Windows完成端口 IOCP模型(一)

1 Windows完成端口基本介绍 2他是只能在Windows下的基于SOCKET事件管理的模型 3与select不同,select需要多次重置管理句柄,IOCP只要一次 4有事件后select需要操作获取数据,而IOCP通知你的时候...

超级极客 ⋅ 01/06 ⋅ 0

Java NIO入门之浅析I/O模型

Java NIO入门之浅析I/O模型 海子 Java架构沉思录 1周前 点击上方“Java架构沉思录”,选择“置顶公众号”。 有内涵、有价值的文章第一时间送达! 作者:海子 原文:http://www.cnblogs.com/...

颓废的幻想者 ⋅ 05/24 ⋅ 0

关于angularjs中的异步请求

前面有说到处理angularjs中的异步的问题,在福瑞项目中我是通过逻辑判断不停的调用方法判断是否异步的按个函数已经执行完毕的。 这里咱们就来说下angularjs中的异步的问题,以及“正规的解决...

邪气小生 ⋅ 2015/11/20 ⋅ 0

Ajax 的基础学习笔记

AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML) Ajax应用程序的优势在于: 1. 通过异步模式,提升了用户体验 2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,...

无一物 ⋅ 2012/10/15 ⋅ 0

JavaScript本来就很简单(神说ajax)

js中的ajax ajax:异步的JavaScript和XML,首先它是一门用于前后台数据交互的技术,这里有两个比较有趣的概念(同步与异步)说白了就是后台传回来的数据,同步的话,你必须刷新页面才能更新数...

云焱 ⋅ 2017/09/24 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 39分钟前 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 2

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部