第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

大家一般是怎么處理ajax請(qǐng)求返回的時(shí)序問題呢?

大家一般是怎么處理ajax請(qǐng)求返回的時(shí)序問題呢?

一般我們用ajax實(shí)現(xiàn)的autocomplete系統(tǒng),隨著用戶的輸入我們向后端發(fā)出去的請(qǐng)求依次應(yīng)該是autocomplete?q=j autocomplete?q=java autocomplete?q=javasc如果遇到網(wǎng)絡(luò)延時(shí)比較嚴(yán)重,當(dāng)我們處理完q=javasc的請(qǐng)求后,q=j的請(qǐng)求才返回過來,那么如果不做任何處理這個(gè)時(shí)候就會(huì)顯示q=j的結(jié)果,顯然這是不合理的,大家一般是怎么處理這種問題的呢?有人可能會(huì)想,用延時(shí)觸發(fā),其實(shí)這根本不能解決問題,延時(shí)觸發(fā)只能減少請(qǐng)求的頻率,但是如果你請(qǐng)求返回的時(shí)間超過了延時(shí)的時(shí)間,照樣會(huì)產(chǎn)生錯(cuò)亂.
查看完整描述

3 回答

?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊

其實(shí)方法很簡(jiǎn)單:終止前一個(gè)請(qǐng)求并刪除此請(qǐng)求:

// when keyupif (lastXhr) {
    lastXhr.abort();    delete lastXhr;
}
...

這樣做還有兩個(gè)優(yōu)點(diǎn):

  1. 可以防止打字太快導(dǎo)致浪費(fèi)許多請(qǐng)求(比如用戶很快把java打出來,其實(shí)j,ja,jav的請(qǐng)求都不需要了),

  2. 可以防止因?yàn)橥蝗婚g收到很多提示結(jié)果導(dǎo)致提示框亂閃


查看完整回答
反對(duì) 回復(fù) 2023-04-17
?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

  • 目前大多自動(dòng)完成是通過用戶輸入來延遲查詢頻率的,每次請(qǐng)求可以加上loading狀態(tài),讓用戶知道自動(dòng)完成在處理請(qǐng)求.

  • 在請(qǐng)求里加上時(shí)間戳,以比較返回時(shí)間是否超出預(yù)期,如果超出預(yù)期且當(dāng)前詞與請(qǐng)求里的詞不一致則忽略掉返回結(jié)果.

  • 最好的辦法是換個(gè)速度快點(diǎn)的服務(wù)器,優(yōu)化服務(wù)端處理時(shí)間,快速完成用戶的請(qǐng)求.


查看完整回答
反對(duì) 回復(fù) 2023-04-17
?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

我是這么處理的,首先你肯定是要記錄每次輸入的事件,每次輸入之后放入到一個(gè)數(shù)組中,如

var key_arr = [];
key_arr.push('j');//依次類推key_arr.push('ja');
key_arr.push('jav');
key_arr.push('java');//end//然后在ajax回調(diào)函數(shù)里面就很好判斷了,我們?cè)赼jax返回值里面把查詢的關(guān)鍵詞也返回來,然后如下判斷if(data.keyword == key_arr.pop()){//處理原有的邏輯}

實(shí)際上就是只處理最后輸入的那個(gè)關(guān)鍵詞的ajax回調(diào)函數(shù)邏輯,實(shí)現(xiàn)可能不太優(yōu)雅呵呵


查看完整回答
反對(duì) 回復(fù) 2023-04-17
  • 3 回答
  • 0 關(guān)注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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