手動封裝XMLHttpRequest

2022-09-08 04:18:11 字數 1395 閱讀 4475

自己動手封裝乙個xmlhttprequest, 相容低版本瀏覽器,自動檢測post與get 型別請求,自動引數拼接,引數型別辨別

>

>

charset

="utf-8"

>

>

自定義xmlhttprequest實現前後端通訊title

>

head

>

>

type

="button"

onclick

="getdata()"

>

獲取資料button

>

>

function

getdata()

, error:

function

(err)}]

)}function

custrequest

(options)

, success:

function()

, error:

function()

};// detect type of optionsif(

typeof options ===

'string'

)else}if

(array.

isarray

(options)

)// merage options

for(

var key in options)

if(opt.url)

if(type ===

'get')if

(type ===

'post'

) xhr.

onload

=function()

opt.success.

call

(xhr, res)}}

}else}}

}}function

isjsonobj

(text)

\s]*$/

.test

(text.

replace

(/\\["\\\/bfnrtu]/g

,'@').

replace

(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[ee][+\-]?\d+)?/g

,']').

replace

(/(?:^|:|,)(?:\s*\[)+/g,''

)))else

}script

>

body

>

html

>

手動封裝AJAX

呼叫順序 呼叫f3函式,輸出2次33333,然後呼叫f2函式,輸出2次22222,呼叫f1函式,輸出5次1111111 f1的 執行完成後會回到被呼叫的位置接著執行 此時輸出3次222222,然後回到f2被呼叫的位置,輸出3次333 呼叫順序 呼叫getresult時傳入3個引數,第3個是乙個匿名函...

手動封裝on,emit,off

on 繫結 emit 觸發 off 解綁 存放事件 eventlist 1對多on eventname,callback handle n多個 1 判斷事件名稱是否存在 2 如果存在的情況下將cb存放在eventname這個陣列當中 3 如果不存在建立key值為eventname val值為陣列 1...

Ajax技術的核心XMLHttpRequest物件

以下簡稱 xhr 為伺服器傳送請求和解析伺服器響應提供了流暢的介面。能夠以非同步的方式從伺服器獲得更多資訊,意味著使用者單擊後不用重新整理頁面也可以取得新資料。也就是說,ajax技術中使用xhr物件取得新資料,再通過dom將新資料插入頁面中。xhr.open 要傳送的請求型別 請求的url 是否非同...