应用jQuery完毕四个ajax请求等待

前言

日常,jQuery的函数ajax实行Ajax调用。函数ajax只好做三个Ajax调用。当Ajax调用成功时,执行回调函数。可选地,当Ajax调用再次来到错误时,调用另3个回调函数。然而,该意义无法依照那些请求的结果进行三个Ajax请求和注册回调函数。一种状态是,网页使五个Ajax请求在禁用用户交互时征集页面不相同部分的多少。该页面仅在页面获得具有数据现在才能展开用户交互。本文介绍了jQuery提供的一种基于两个Ajax请求来注册回调函数的点子。那种格局是基于Deferred对象的定义。

有关代码

首先,在后台的三个ASP.NET Web API函数来经受服务器Ajax调用。代码如下:

图片 1

后台接受ajax请求代码

要拓展单个Ajax调用,能够利用jQuery的ajax函数。正面是2个简易的例子:

图片 2

ajax调用示例

成功和错误的回调函数正在守候单个Ajax调用。jQuery库提供了1种艺术来使任何回调函数等待五个Ajax调用。此格局基于称为Deferred的对象。Deferred对象能够依据Deferrred对象是还是不是化解或拒绝来注册回调函数。以下是Deferred的以身作则。图片 3

Deferred示例

注意Deferred对象足以链接。以下是Deferred对象链的以身作则。

图片 4

Deferred对象有2个艺术叫做promise。它回到一个Promise对象。Promise对象揭示了Deferred方法的3个子集,以幸免其情景被改动。那象征制止Deferred对象被手动解析或拒绝。Promise对象公开以下Deferred方法:then,done,fail,always,pipe,progress,state,和
promise。它不会公开以下Deferred方法:resolve,reject,notify,resolveWith,rejectWith

notifyWith。promise对象足以被视为三个Deferred对象,该对象不只怕手动更改该情况。jQuery
的ajax函数再次回到1个jqXH奥迪Q伍对象。那个jqXH卡宴对象有八个重点的事实。

先是,二个jqXHXC90对象是XMLHTTPRequest对象的超集。例如,一个jqXH凯雷德对象能够经过引用它的readyState属性来查询XMLHTTPRequest的气象。即便其readyState为四,则Ajax请求达成。

匡助,3个jqXHEscort对象达成了Promise接口,并公开了拥有的Promise方法。基本上,二个jqXH途锐对象足以被看成3个Promise对象。例如,done方法可以用作jqXH福特Explorer对象的打响回调函数。jQuery库提供了叁个被称作when的函数,接受五个Deferred对象并赶回3个Promise对象的函数。当有着Deferred对象被分析时,再次来到的Promise对象将被分析。当其余Deferred对象被驳回时,它将被驳回。传递给函数的Deferred对象when可以是Deferred对象,Promise对象或jqXHTucson对象。以下是等待多个Ajax请求的代码示例:

图片 5

率先,八个变量存款和储蓄从八个jQuery
Ajax调用重返的jqXH本田CR-V对象。然后将五个目的传递给函数when。重回的Promise对象when被链接到函数then。函数then为Promise对象添加了处理程序。then函数的第一个参数是三个打响函数,当Promise成功时调用它。then函数的第叁个参数是在Promise被驳回时调用的战败函数。退步函数检查各种Ajax调用的事态。借使Ajax调用未成功,它将中止。注意,由于页面已施行和倒闭,战败函数依旧能够访问超出范围的变量j一和j2。那是因为JavaScript关闭。闭包是个中等高校函授数,尽管外部函数关闭,也得以访问外部函数中的变量。换句话说,内部函数能够保证首先定义的环境。

 

web前端/H5/javascript学习群:250777811

迎接我们关切自小编的微复信号公众号,公众号名称:web前端EDU。扫上边包车型地铁二维码恐怕收藏上边包车型地铁2维码关切呢(长按上边包车型地铁二维码图片、并选用识别图中的2维码)

 

图片 6

相关文章