摘要:使用做開發(fā),始終不能繞不過網(wǎng)絡(luò)這一關(guān)。不管怎么樣,直接使用是非常繁瑣麻煩的,一個(gè)更簡單的庫來幫助我們簡化編碼是十分必要的。單一職責(zé)標(biāo)準(zhǔn)規(guī)范從上表的對(duì)比,可以看出,時(shí)至今天,如果要選擇一個(gè)庫,符合標(biāo)準(zhǔn)規(guī)范的無疑是最好的選擇。
使用JavaScript做開發(fā),始終不能繞不過網(wǎng)絡(luò)這一關(guān)。
目前主要的網(wǎng)絡(luò)使用場(chǎng)景有以下兩大塊:
AJAX (browser)
HTTP client (server)
當(dāng)然,如果正在開發(fā)一個(gè)isomorphic/universal應(yīng)用,你可能需要一個(gè)能同時(shí)應(yīng)付browser和server端的東西。
不管怎么樣,直接使用XMLHttpRequest是非常繁瑣麻煩的,一個(gè)更簡單的庫來幫助我們簡化編碼是十分必要的。
很多人使用jQuery的$.ajax,但如果只為了簡化AJAX編碼就引入整個(gè)jQuery未免有些太浪費(fèi)了。
首先,讓我們來列下都有哪些可用的AJAX/HTTP方法/庫。
browser | node | promise | 單一職責(zé) | 標(biāo)準(zhǔn)規(guī)范 | |
---|---|---|---|---|---|
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 |
從上表的對(duì)比,可以看出,時(shí)至今天(2016/02/15),如果要選擇一個(gè)AJAX/HTTP庫,符合標(biāo)準(zhǔn)規(guī)范的fetch無疑是最好的選擇。
當(dāng)然,fetch也不是十全十美的,目前(2016/02/15)只有chrome/firefox/opera原生支持fetch。
想在其他瀏覽器上使用,得引入一些polyfill,比如github的fetch
想在node上使用,得引入node-fetch
想在瀏覽器和node上同時(shí)使用,得引入isomorphic-fetch,它包含了fetch和node-fetch
另外,因?yàn)?b>fetch是基于promise的,如果你的目標(biāo)運(yùn)行環(huán)境不支持promise,還得引入es6-promise這個(gè)polyfill才行。
但是不管怎么樣,緊跟標(biāo)準(zhǔn)規(guī)范總是不會(huì)錯(cuò)的,這些polyfill也總有一天會(huì)被移出,我們只是提前享受標(biāo)準(zhǔn)帶來的好處而已,不是嗎。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/78668.html
摘要:默認(rèn)參數(shù)為空字符串密碼,可選參數(shù),用于授權(quán)。默認(rèn)參數(shù)為空字符串備注如果不是有效的方法或地址不能被成功解析,將會(huì)拋出異常如果請(qǐng)求方法不區(qū)分大小寫為或?qū)?huì)拋出異常重寫由服務(wù)器返回的類型。 本文詳細(xì)介紹了 XMLHttpRequest 相關(guān)知識(shí),涉及內(nèi)容: AJAX、XMLHTTP、XMLHttpRequest詳解、XMLHttpRequest Level 1、Level 2 詳解 XHR...
摘要:我的博客大家都知道解決了回調(diào)地獄的問題。這就是異步的嵌套帶來的可讀性的問題,它是由異步的運(yùn)行機(jī)制引起的。在與第三方團(tuán)隊(duì)溝通之后問題得到了解決。這不但使代碼變得臃腫不堪,還進(jìn)一步加劇了可讀性的問題。的特征保證了可以解決信任問題。 我的github博客 https://github.com/zhuanyongxigua/blog 大家都知道Promise解決了回調(diào)地獄的問題。說到回調(diào)地獄,...
摘要:一個(gè)就像一個(gè)樂高玩具。問題是不是你小時(shí)候玩兒的那個(gè)有趣,它們不是充滿想象力的打氣筒,也不是一種樂高玩具。這是對(duì)的并不是給開發(fā)者使用的,它們是給庫作者使用的。不會(huì)超過這兩種情況。第二個(gè)是根據(jù)第一個(gè)處理函數(shù)如何運(yùn)行來自動(dòng)變成狀態(tài)成功或者失敗。 原文地址:http://blog.getify.com/promis... 在 Part4:擴(kuò)展問題 中,我討論了如何擴(kuò)展和抽象Promise是多么...
摘要:但是,對(duì)函數(shù)式編程而言,這個(gè)行為的重要性是毋庸置疑的。關(guān)于該模式更正式的說法是偏函數(shù)嚴(yán)格來講是一個(gè)減少函數(shù)參數(shù)個(gè)數(shù)的過程這里的參數(shù)個(gè)數(shù)指的是希望傳入的形參的數(shù)量。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關(guān)于譯者:這是一個(gè)流淌著滬江血液的純粹工程:認(rèn)真,是 HTML 最堅(jiān)實(shí)的梁柱;分享,是...
閱讀 3048·2021-10-13 09:39
閱讀 1890·2021-09-02 15:15
閱讀 2452·2019-08-30 15:54
閱讀 1814·2019-08-30 14:01
閱讀 2614·2019-08-29 14:13
閱讀 1427·2019-08-29 13:10
閱讀 2741·2019-08-28 18:15
閱讀 3902·2019-08-26 10:20