这次给大家带来用JQUERY实现多个jqueryajax路径請求同时等待用JQUERY实现多个jqueryajax路径请求同时等待的
有哪些,下面就是实战案例一起来看一下。
前言通常jQuery的函数jqueryajax路径进行jqueryajax路径调用。函数jqueryajax蕗径只能做一个jqueryajax路径调用当jqueryajax路径调用成功时,执行可选地,当jqueryajax路径调用返回错误时调用另一个回调函数。
但是该功能不能根据这些请求的结果进行多个jqueryajax路径请求和注册回调函数。
一种情况是网页使多个jqueryajax路径请求在禁用用户交互时收集页面不同部分的数据。
该页面僅在页面获取所有数据之后才能进行用户交互本文介绍了jQuery提供的一种基于多个jqueryajax路径请求来注册回调函数的方法。
这种方法是基于Deferred对象的概念相关代码首先,在后台的两个 Web API函数来接受服务器jqueryajax路径调用
要进行单个jqueryajax路径调用,可以使用jQuery的jqueryajax路径函数正面是一个简单的例子:
jqueryajax蕗径调用示例成功和错误的回调函数正在等待单个jqueryajax路径调用。jQuery库提供了一种方法来使任何回调函数等待多个jqueryajax路径调用此方法基于称为Deferred的對象。Deferred对象可以根据Deferrred对象是否解决或拒绝来注册回调函数
Deferred对象有一个方法叫做promise。它返回一个Promise对象Promise对象暴露了Deferred方法的一个子集,以防止其状态被更改
这意味着防止Deferred对象被手动解析或拒绝。
这个jqXHR对象有两个重要的事实
其次,一个jqXHR对象实现了Promise接口并公开了所有的Promise方法。
基本上一个jqXHR 对象可以被当作一个Promise对象。
例如done方法可以用作jqXHR对象的成功回调函数。
jQuery库提供了一个被称为when的函数接受多个Deferred对象并返回一個Promise对象的函数。
当所有Deferred对象被解析时返回的Promise对象将被解析。当任何Deferred对象被拒绝时它将被拒绝。
以下是等待多个jqueryajax路径请求的代码示例
首先两个变量存储从两个jQuery jqueryajax路径调用返回的jqXHR对象。
然后将两个对象传递给函数when返回的Promise对象when被链接到函数then。
函数then为Promise对象添加了处理程序
then函數的第一个参数是一个成功函数,当Promise成功时调用它
then函数的第二个参数是在Promise被拒绝时调用的失败函数。
失败函数检查每个jqueryajax路径调用的状态如果jqueryajax路径调用未完成,它将中止注意,由于页面已执行和关闭失败函数仍然可以访问超出范围的变量j1和j2 。
这是因为关闭闭包是,即使外部函数关闭也可以访问外部函数中的变量。换句话说内部函数可以保持首先定义的环境。
相信看了本文案例你已经掌握了方法更多精彩请关注php中文网其它相关文章!
以上就是用JQUERY实现多个jqueryajax路径请求同时等待的详细内容,更多请关注php中文网其它相关文章!