加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

选择一个AJAX/HTTP库

发布时间:2020-12-16 01:43:31 所属栏目:百科 来源:网络整理
导读:使用JavaScript做开发,始终不能绕不过网络这一关。 目前主要的网络使用场景有以下两大块: AJAX (browser) HTTP client (server) 当然,如果正在开发一个isomorphic/universal应用,你可能需要一个能同时应付browser和server端的东西。 不管怎么样,直接使用

使用JavaScript做开发,始终不能绕不过网络这一关。

目前主要的网络使用场景有以下两大块:

  • AJAX (browser)

  • HTTP client (server)

当然,如果正在开发一个isomorphic/universal应用,你可能需要一个能同时应付browser和server端的东西。

不管怎么样,直接使用XMLHttpRequest是非常繁琐麻烦的,一个更简单的库来帮助我们简化编码是十分必要的。

很多人使用jQuery的$.ajax,但如果只为了简化AJAX编码就引入整个jQuery未免有些太浪费了。

首先,让我们来列下都有哪些可用的AJAX/HTTP方法/库。

browser node promise 单一职责 标准规范
XMLHttpRequest O X X O O
Node HTTP X O X O O
fetch O X O O O
node-fetch X O O O O
isomorphic-fetch O O O O O
superagent O O X O X
axios O O O O X
request X O X O X
jQuery O X X X X
reqwest O O O O X

从上表的对比,可以看出,时至今天(2016/02/15),如果要选择一个AJAX/HTTP库,符合标准规范的fetch无疑是最好的选择。

当然,fetch也不是十全十美的,目前(2016/02/15)只有chrome/firefox/opera原生支持fetch

  • 想在其他浏览器上使用,得引入一些polyfill,比如github的fetch

  • 想在node上使用,得引入node-fetch

  • 想在浏览器和node上同时使用,得引入isomorphic-fetch,它包含了fetch和node-fetch

另外,因为fetch是基于promise的,如果你的目标运行环境不支持promise,还得引入es6-promise这个polyfill才行。

但是不管怎么样,紧跟标准规范总是不会错的,这些polyfill也总有一天会被移出,我们只是提前享受标准带来的好处而已,不是吗。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读