選擇一個AJAX/HTTP庫

使用JavaScript作開發,始終不能繞不過網絡這一關。node

目前主要的網絡使用場景有如下兩大塊:ios

  • AJAX (browser)git

  • HTTP client (server)es6

固然,若是正在開發一個isomorphic/universal應用,你可能須要一個能同時應付browser和server端的東西。github

無論怎麼樣,直接使用XMLHttpRequest是很是繁瑣麻煩的,一個更簡單的庫來幫助咱們簡化編碼是十分必要的。ajax

不少人使用jQuery的$.ajax,但若是隻爲了簡化AJAX編碼就引入整個jQuery未免有些太浪費了。chrome

首先,讓咱們來列下都有哪些可用的AJAX/HTTP方法/庫。axios

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無疑是最好的選擇。promise

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

另外,由於fetch是基於promise的,若是你的目標運行環境不支持promise,還得引入es6-promise這個polyfill才行。

可是無論怎麼樣,緊跟標準規範老是不會錯的,這些polyfill也總有一天會被移出,咱們只是提早享受標準帶來的好處而已,不是嗎。

相關文章
相關標籤/搜索