jAjax: jQuery.ajax with ES6 Promise

起因

ReactVue.js 这些视图层高端武器的时候

他们不提供 Ajax 通信功能

还是 Angular.js 爽

直接用 XMLHttpRequest 觉得麻烦

于是

就用专门的 Ajax 库,比如说

这些东西存在的问题有

  • 兼容性问题
  • 额外的学习成本
  • 拼写看着难受

后来

大伙儿表示

去你大爷的

老子就是喜欢 jQuery

我就把 jQuery 的 ajax 模块拿出来单独编译

剔除 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

确是小了一些的,应该还有压缩空间,有时间的时候再说吧。