先定一個(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)圖,一目了然
解析參數(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(空格)替換成'+'。
getData: function(){ var name, value; if (opts.data) { if (typeof opts.data === "string") { opts.data = opts.data.split("&"); for