欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用JQUERY實現(xiàn)多個AJAX請求等待的實例

 更新時間:2017年12月14日 08:40:32   作者:悟空前端  
下面小編就為大家分享一篇利用JQUERY實現(xiàn)多個AJAX請求等待的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

前言通常,jQuery的函數ajax進行Ajax調用。函數ajax只能做一個Ajax調用。當Ajax調用成功時,執(zhí)行回調函數??蛇x地,當Ajax調用返回錯誤時,調用另一個回調函數。

但是,該功能不能根據這些請求的結果進行多個Ajax請求和注冊回調函數。

一種情況是,網頁使多個Ajax請求在禁用用戶交互時收集頁面不同部分的數據。

該頁面僅在頁面獲取所有數據之后才能進行用戶交互。本文介紹了jQuery提供的一種基于多個Ajax請求來注冊回調函數的方法。

這種方法是基于Deferred對象的概念。相關代碼首先,在后臺的兩個ASP.NET Web API函數來接受服務器Ajax調用。

代碼如下:

利用jQuery實現(xiàn)多個ajax請求等待

后臺接收

ajax請求代碼

要進行單個Ajax調用,可以使用jQuery的ajax函數。正面是一個簡單的例子:

利用jQuery實現(xiàn)多個ajax請求等待

ajax調用示例成功和錯誤的回調函數正在等待單個Ajax調用。jQuery庫提供了一種方法來使任何回調函數等待多個Ajax調用。此方法基于稱為Deferred的對象。Deferred對象可以根據Deferrred對象是否解決或拒絕來注冊回調函數。

以下是Deferred的示例

利用jQuery實現(xiàn)多個ajax請求等待

Deferred示例注意Deferred對象可以鏈接。以下是Deferred對象鏈的示例。

利用jQuery實現(xiàn)多個ajax請求等待

Deferred對象有一個方法叫做promise。它返回一個Promise對象。Promise對象暴露了Deferred方法的一個子集,以防止其狀態(tài)被更改。

這意味著防止Deferred對象被手動解析或拒絕。

Promise對象公開以下Deferred方法:then,done,fail,always,pipe,progress,state,和 promise。

它不會公開以下Deferred方法:resolve,reject,notify,resolveWith,rejectWith 和 notifyWith。promise對象可以被視為一個Deferred對象,該對象無法手動更改該狀態(tài)。

jQuery 的ajax函數返回一個jqXHR對象。

這個jqXHR對象有兩個重要的事實。

首先,一個jqXHR對象是XMLHTTPRequest對象的超集。

例如,一個jqXHR對象可以通過引用它的readyState屬性來查詢XMLHTTPRequest的狀態(tài)。

如果其readyState為4,則Ajax請求完成。

其次,一個jqXHR對象實現(xiàn)了Promise接口,并公開了所有的Promise方法。

基本上,一個jqXHR 對象可以被當作一個Promise對象。

例如,done方法可以用作jqXHR對象的成功回調函數。

jQuery庫提供了一個被稱為when的函數,接受多個Deferred對象并返回一個Promise對象的函數。

當所有Deferred對象被解析時,返回的Promise對象將被解析。當任何Deferred對象被拒絕時,它將被拒絕。

傳遞給函數的Deferred對象when可以是Deferred對象,Promise對象或jqXHR對象。

以下是等待多個Ajax請求的代碼示例

利用jQuery實現(xiàn)多個ajax請求等待

首先,兩個變量存儲從兩個jQuery Ajax調用返回的jqXHR對象。

然后將兩個對象傳遞給函數when。返回的Promise對象when被鏈接到函數then。

函數then為Promise對象添加了處理程序。

then函數的第一個參數是一個成功函數,當Promise成功時調用它。

then函數的第二個參數是在Promise被拒絕時調用的失敗函數。

失敗函數檢查每個Ajax調用的狀態(tài)。如果Ajax調用未完成,它將中止。注意,由于頁面已執(zhí)行和關閉,失敗函數仍然可以訪問超出范圍的變量j1和j2 。

這是因為JavaScript關閉。閉包是內部函數,即使外部函數關閉,也可以訪問外部函數中的變量。換句話說,內部函數可以保持首先定義的環(huán)境。

以上這篇利用JQUERY實現(xiàn)多個AJAX請求等待的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論