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

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

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

你是否想過自己封裝個ajax....

 

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

 

那么就從自己封裝一個ajax切入吧,首先我整理的一個流程圖,一目了然

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

 

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

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

Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),移動開發(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 (var i = 0, len = opts.data.length; i < len; i++) {
                            name = opts.data[i].split("=")[0];