栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

等到所有jQuery Ajax请求都完成了吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

等到所有jQuery Ajax请求都完成了吗?

jQuery现在为此目的定义了一个when函数。

它接受任意数量的Deferred对象作为参数,并在它们全部解析后执行一个函数。

这意味着,如果您要发起(例如)四个ajax请求,然后在完成后执行操作,则可以执行以下操作:

$.when(ajax1(), ajax2(), ajax3(), ajax4()).done(function(a1, a2, a3, a4){    // the pre here will be executed when all four ajax requests resolve.    // a1, a2, a3 and a4 are lists of length 3 containing the response text,    // status, and jqXHR object for each of the four ajax calls respectively.});function ajax1() {    // NOTE:  This function must return the value     //        from calling the $.ajax() method.    return $.ajax({        url: "someUrl",        dataType: "json",        data:  yourJsonData,         ...    });}

在我看来,它使语法清晰明了,并避免涉及任何全局变量(例如ajaxStart和ajaxStop),这些全局变量在页面开发时可能会产生有害的副作用。

如果您事先不知道需要等待多少个ajax参数(即,您想使用可变数量的参数),它仍然可以完成,但是有点棘手。请参阅将Deferreds数组传递给$.when()(以及在使用可变数量的参数进行故障排除时,可能还有jQuery。)。

如果您需要对ajax脚本等的失败模式进行更深入的控制,则可以保存由返回的对象

.when()
-这是一个jQuery
Promise对象,其中包含所有原始ajax查询。您可以调用
.then()
.fail()
在其上添加详细的成功/失败处理程序。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/365394.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号