jAjax: jQuery.ajax with ES6 Promise
起因
他们不提供 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
确是小了一些的,应该还有压缩空间,有时间的时候再说吧。