您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

用JQUERY实现多个AJAX请求同时等待

2025/3/20 16:14:14发布40次查看
这次给大家带来用jquery实现多个ajax请求同时等待,用jquery实现多个ajax请求同时等待的注意事项有哪些,下面就是实战案例,一起来看一下。
前言通常,jquery的函数ajax进行ajax调用。函数ajax只能做一个ajax调用。当ajax调用成功时,执行回调函数。可选地,当ajax调用返回错误时,调用另一个回调函数。
但是,该功能不能根据这些请求的结果进行多个ajax请求和注册回调函数。
一种情况是,网页使多个ajax请求在禁用用户交互时收集页面不同部分的数据。
该页面仅在页面获取所有数据之后才能进行用户交互。本文介绍了jquery提供的一种基于多个ajax请求来注册回调函数的方法。
这种方法是基于deferred对象的概念。相关代码首先,在后台的两个asp.net web api函数来接受服务器ajax调用。
代码如下:
后台接收
ajax请求代码
要进行单个ajax调用,可以使用jquery的ajax函数。正面是一个简单的例子:
ajax调用示例成功和错误的回调函数正在等待单个ajax调用。jquery库提供了一种方法来使任何回调函数等待多个ajax调用。此方法基于称为deferred的对象。deferred对象可以根据deferrred对象是否解决或拒绝来注册回调函数。
以下是deferred的示例
deferred示例注意deferred对象可以链接。以下是deferred对象链的示例。
deferred对象有一个方法叫做promise。它返回一个promise对象。promise对象暴露了deferred方法的一个子集,以防止其状态被更改。
这意味着防止deferred对象被手动解析或拒绝。
promise对象公开以下deferred方法:then,done,fail,always,pipe,progress,state,和 promise。
它不会公开以下deferred方法:resolve,reject,notify,resolvewith,rejectwith 和 notifywith。promise对象可以被视为一个deferred对象,该对象无法手动更改该状态。
jquery 的ajax函数返回一个jqxhr对象。
这个jqxhr对象有两个重要的事实。
首先,一个jqxhr对象是xmlhttprequest对象的超集。
例如,一个jqxhr对象可以通过引用它的readystate属性来查询xmlhttprequest的状态。
如果其readystate为4,则ajax请求完成。
其次,一个jqxhr对象实现了promise接口,并公开了所有的promise方法。
基本上,一个jqxhr 对象可以被当作一个promise对象。
例如,done方法可以用作jqxhr对象的成功回调函数。
jquery库提供了一个被称为when的函数,接受多个deferred对象并返回一个promise对象的函数。
当所有deferred对象被解析时,返回的promise对象将被解析。当任何deferred对象被拒绝时,它将被拒绝。
传递给函数的deferred对象when可以是deferred对象,promise对象或jqxhr对象。
以下是等待多个ajax请求的代码示例
首先,两个变量存储从两个jquery ajax调用返回的jqxhr对象。
然后将两个对象传递给函数when。返回的promise对象when被链接到函数then。
函数then为promise对象添加了处理程序。
then函数的第一个参数是一个成功函数,当promise成功时调用它。
then函数的第二个参数是在promise被拒绝时调用的失败函数。
失败函数检查每个ajax调用的状态。如果ajax调用未完成,它将中止。注意,由于页面已执行和关闭,失败函数仍然可以访问超出范围的变量j1和j2 。
这是因为javascript关闭。闭包是内部函数,即使外部函数关闭,也可以访问外部函数中的变量。换句话说,内部函数可以保持首先定义的环境。
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
下拉框动态级联加载
怎样用jquery验证表单密码的一致性
ajax怎么实现下拉框无刷新联动
怎样确认jquery是否加载完毕
以上就是用jquery实现多个ajax请求同时等待的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product