先定一個(gè)小目標(biāo),自己封裝個(gè)ajax

你是否發(fā)現(xiàn)項(xiàng)目中有很多頁(yè)面只用到了框架不到十分之一的內(nèi)容,還引了壓縮后還有70多kb的jquery庫(kù)

你是否發(fā)現(xiàn)項(xiàng)目中就用了兩三個(gè)underscore提供的方法,其他大部分的你方法你甚至從來(lái)沒(méi)有看過(guò)

你是否發(fā)現(xiàn)fetch好像比ajax好用那么一點(diǎn)

你是否想過(guò)自己封裝個(gè)ajax....

 

純前端寫(xiě)得久了,便想折騰點(diǎn)事情。比如先定一個(gè)小目標(biāo),年前自己寫(xiě)個(gè)類(lèi)jquery輕量級(jí)庫(kù)....

 

那么就從自己封裝一個(gè)ajax切入吧,首先我整理的一個(gè)思維導(dǎo)圖,一目了然

Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),移動(dòng)開(kāi)發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

 

解析參數(shù)數(shù)據(jù)

通常我們的請(qǐng)求后面會(huì)有一些參數(shù),如果是get請(qǐng)求當(dāng)然可以直接通過(guò)'&'拼在url后面。那么post就需要做一下處理了,如果參數(shù)是字符串,則將字符串用‘&’符號(hào)切割轉(zhuǎn)化成鍵值對(duì)形式,同時(shí)用encodeURIComponent轉(zhuǎn)碼,最后類(lèi)似于jquery的處理,將/%20/g(空格)替換成'+'。

Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),移動(dòng)開(kāi)發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

      getData: function(){                var name, value;                if (opts.data) {                    if (typeof opts.data === "string") {
                        opts.data = opts.data.split("&");                        for