ajax - onreadystatechange 事件
onreadystatechange 事件
當(dāng)請(qǐng)求被發(fā)送到服務(wù)器時(shí),我們需要執(zhí)行一些基于響應(yīng)的任務(wù)。
每當(dāng) readystate 改變時(shí),就會(huì)觸發(fā) onreadystatechange 事件。
readystate 屬性存有 xmlhttprequest 的狀態(tài)信息。
下面是 xmlhttprequest 對(duì)象的三個(gè)重要的屬性:
屬性 | 描述 |
---|---|
onreadystatechange | 存儲(chǔ)函數(shù)(或函數(shù)名),每當(dāng) readystate 屬性改變時(shí),就會(huì)調(diào)用該函數(shù)。 |
readystate | 存有 xmlhttprequest 的狀態(tài)。從 0 到 4 發(fā)生變化。
|
status | 200: "ok" 404: 未找到頁(yè)面 |
在 onreadystatechange 事件中,我們規(guī)定當(dāng)服務(wù)器響應(yīng)已做好被處理的準(zhǔn)備時(shí)所執(zhí)行的任務(wù)。
當(dāng) readystate 等于 4 且狀態(tài)為 200 時(shí),表示響應(yīng)已就緒:
實(shí)例
注意: onreadystatechange 事件被觸發(fā) 4 次(0 - 4), 分別是: 0-1、1-2、2-3、3-4,對(duì)應(yīng)著 readystate 的每個(gè)變化。
使用回調(diào)函數(shù)
回調(diào)函數(shù)是一種以參數(shù)形式傳遞給另一個(gè)函數(shù)的函數(shù)。
如果您的網(wǎng)站上存在多個(gè) ajax 任務(wù),那么您應(yīng)該為創(chuàng)建 xmlhttprequest 對(duì)象編寫一個(gè)標(biāo)準(zhǔn)的函數(shù),并為每個(gè) ajax 任務(wù)調(diào)用該函數(shù)。
該函數(shù)調(diào)用應(yīng)該包含 url 以及發(fā)生 onreadystatechange 事件時(shí)執(zhí)行的任務(wù)(每次調(diào)用可能不盡相同):