最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

jquery ajax作為deferred對(duì)象如何觸發(fā)progress?

jQuery deferred對(duì)象存在三種狀態(tài)觸發(fā)函數(shù),resolve,fail,notify,分別對(duì)象成功,失敗,進(jìn)行中三種回調(diào)函數(shù),當(dāng)deferred不是promise對(duì)象的時(shí)候可以自行通過(guò)調(diào)用三個(gè)方法來(lái)觸發(fā)不同的狀態(tài)從而觸發(fā)相應(yīng)的回調(diào)函數(shù)。但是jquery ajax就是一個(gè)promise對(duì)象,不能手動(dòng)的觸發(fā)notify,查閱deferred的pipe方法,可以傳遞三個(gè)回調(diào)函數(shù),對(duì)應(yīng)上訴的三種狀態(tài),但是,成功,失敗回調(diào)都是內(nèi)部自行控制,外部不能干預(yù),那是不是說(shuō),通過(guò)pipe的方式執(zhí)行ajax是沒(méi)有機(jī)會(huì)執(zhí)行progress方法的呢?有的話(huà),如何控制?如果有需要在ajax執(zhí)行中添加函數(shù)的需求,如何實(shí)現(xiàn)呢?

正在回答

2 回答

解決喜歡


0 回復(fù) 有任何疑惑可以回復(fù)我~

通過(guò)pipe的方式執(zhí)行ajax是沒(méi)有機(jī)會(huì)執(zhí)行progress方法的呢?

if?(?isSuccess?)?{
???deferred.resolveWith(?callbackContext,?[?success,?statusText,?jqXHR?]?);
}?else?{
???deferred.rejectWith(?callbackContext,?[?jqXHR,?statusText,?error?]?);
}

很明顯,ajax并沒(méi)有調(diào)用notifyWith的地方。所以,不會(huì)有機(jī)會(huì)執(zhí)行progress方法。


另外,對(duì)于XMLHttpRequest的事件而言。

onreadystatechange才能監(jiān)聽(tīng)傳輸中狀態(tài),也就是觸發(fā)progress方法

而jQuery.ajax使用的是onload方法,onload只在ajax加載完成才會(huì)觸發(fā)。如下:

xhr.onload?=?callback();
xhr.onerror?=?callback("error");

所以,如果想要觸發(fā)progress方法,需要再綁定一個(gè)事件:

xhr.onreadystatechange?=?function(){
????if(xhr.readyState==3){
????????//類(lèi)似于jqXHR.notifyWidth(callbackContext);
????}
}


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

jquery ajax作為deferred對(duì)象如何觸發(fā)progress?

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)