jAjax: jQuery.ajax with ES6 Promise

原由

ReactVue.js 這些視圖層高端武器的時候vue

他們不提供 Ajax 通訊功能react

仍是 Angular.js 爽jquery

直接用 XMLHttpRequest 以爲麻煩git

因而

就用專門的 Ajax 庫,好比說github

這些東西存在的問題有ajax

  • 兼容性問題
  • 額外的學習成本
  • 拼寫看着難受

後來

大夥兒表示npm

去你大爺的工具

老子就是喜歡 jQuery學習

我就把 jQuery 的 ajax 模塊拿出來單獨編譯fetch

剔除 jQuery 的其餘部分,還能縮減點源碼的尺寸

但是

後來想用 Promise

jQuery 的 Deferred 和標準 Promise 實現不太同樣

一混用就混亂

結果

使用標準 Promise (with polyfill) 封裝 jQuery.ajax 返回的 Deferred

整個打了一個包,發到了 GitHub 上

jAjax

連帶打包工具、Promise Polyfill 都放到上面了

若是須要低版本的 jQuery.ajax

或者更快的 Promise 實現

能夠把倉庫克隆下來

自做主張

若是就想擎現成的

$ npm install jajax
$ bower install jajax

都行

此外

jQuery 1x 和 2x 版本的 Gruntfile 都有個 bug

致使用 Inclusive 的方式編譯出來有問題

這個問題在 jQuery 3x 的兩個版本上都獲得了修復

我昨天大半夜的提出把這個修復也放到 1x 和 2x 版本的 Gruntfile 上

被維護者大大們拒絕了

因此若是須要 1x 和 2x 的 jQuery.ajax 的朋友們

請大家手動 cherry-pick 34b293 這個 commit

最後

jQuery 2.1.4:              82 KB, 32 KB Gzipped
jAjax of jQuery 3.0.0-pre: 24 KB, 10 KB Gzipped

確是小了一些的,應該還有壓縮空間,有時間的時候再說吧。

相關文章
相關標籤/搜索