jQuery:在一個回撥中處理多個請求
我曾經為Mozilla Developer Network 開發一個新功能,它需要載入一個基本的指令碼檔案的同時載入一個JSON請求。因為我們使用的是jQuery,意味著要使用 jQuery.getScript和jQuery.getJSON。我知道這兩者都是非同步的並返回一個Deferred(jQuery中的Promise模式實現, 參見: deffered object)物件,因此我想知道能不能在一個回撥裡按順序請求它們,就像多數的JavaScript載入器那樣(如curljs )。我很幸運,使用jQuery就可以用一個回撥處理兩個請求。
jQuery的JavaScript程式碼
就像我剛才提到的,我需要載入一個指令碼和一個JSON檔案,就像這樣:
$.when( $.getScript('/media/js/wiki-min.js?build=21eb633'), $.getJSON('https://developer.mozilla.org/en-US/demos/feeds/json/featured/') ).then(function(a, b) { // 或者 ".done" // 好了,東西都載入好了,可以幹活了 });
當資原始檔載入完時,done或者callback就會被觸發,我就知道已經請求完了。每一個請求都返回了不同的回撥引數,如上面的返回引數就像這樣:
// [response, state, jqxhr], [response, state, jqxhr] ["(function(c){var e=c(".from-search-navigate");if(e…;if(j){g.apply(m,l)}}}})(window,document,jQuery);", "success", Object] [Array[15], "success", Object]
如果我們希望再載入一個傳統的Ajax請求,就像獲取一個HTML模板,我們可以這樣:
$.when( $.getScript('/media/js/wiki-min.js?build=21eb633'), $.getJSON('https://developer.mozilla.org/en-US/demos/feeds/json/featured/'), $.get('/') ).then(function(a, b, c) { console.log(a, b, c); });
Dojo Toolkit很早以前就有類似的功能了,但是我不知道現代jQuery也可以。在一個回撥中處理多個請求在請多場合需要用到,可以看出jQuery也在與時俱進。
相關文章
- 多執行緒應用–Http請求阻塞回撥處理執行緒HTTP
- 多執行緒應用--Http請求阻塞回撥處理執行緒HTTP
- nginx 如何處理一個請求Nginx
- Node.js如何處理多個請求?Node.js
- Spring MVC 處理一個請求的流程分析SpringMVC
- Angular 記錄 - Rxjs 完整處理一個 Http 請求AngularJSHTTP
- 多個請求統一更新介面
- linux如何處理多連線請求?Linux
- 微信網頁授權登入回撥多個二級域名站的處理方法網頁
- 如何用Golang處理每分鐘100萬個請求Golang
- ajax中回撥的幾個坑
- 在 Laravel 中處理請求驗證的智慧方法Laravel
- Laravel 路由匹配多個請求Laravel路由
- 如何在Camel中Post一個請求?
- 關於在request請求時,處理請求引數的問題
- ActiveMQ-MessageListener非同步回撥處理MQ非同步
- 在C++中使用libuv時對回撥的處理 (2)C++
- 在 .NET 中使用 Flurl 高效處理Http請求HTTP
- 請求資料處理
- springmvc處理ajax請求SpringMVC
- 微信小程式學習總結02:封裝api請求(處理非同步api回撥地獄的一種方案)微信小程式封裝API非同步
- 處理多個異常
- 如何使用策略模式處理多種型別請求模式型別
- axios中POST請求變成OPTIONS處理iOS
- 設計一個回撥要注意哪些事情
- 驚喜!一個檔案多個【請求類】的另類寫法
- WebApplicationContext 中特殊的 bean 型別(一)--- 請求/異常處理WebAPPContextBean型別
- WebApplicationContext 中特殊的 bean 型別(一)— 請求/異常處理WebAPPContextBean型別
- 理解 Nginx 在處理請求時的匹配規則Nginx
- DeferredResult——非同步請求處理非同步
- Shopify單體在黑色星期五期間每秒處理127萬個請求
- 如何中斷一個正在發出的請求
- Tomcat中的容器是如何處理請求的Tomcat
- Node中POST請求的正確處理方式
- 如何透過 SAP ABAP OData $expand 操作在同一個 HTTP 請求中返回多個節點的資料試讀版HTTP
- 分享一個大模型在請求api介面上的巧用大模型API
- 【原始碼分析】- 在SpringBoot中你會使用REST風格處理請求嗎?原始碼Spring BootREST
- 直播帶貨原始碼,非同步處理中會處理兩次請求原始碼非同步
- 介紹一個請求庫 — Undici