javascript - 關(guān)于ajax請求斷網(wǎng)后的問題
問題描述
想問大家個問題,一個ajax請求發(fā)送給后臺了,后臺開始處理了但是給前端返回值的過程中斷網(wǎng)了,前端肯定會得到timeout,但是后臺已經(jīng)處理了這個請求,這種情況咋辦?我覺得后臺不應(yīng)該處理才對,如果支付寶或者微信支付遇到這樣的情況他們肯定不可能說把錢扣了然后前端給出一個斷網(wǎng)的提示吧?求知道怎么處理的同行給個策略,謝謝!!
問題解答
回答1:如果按照這種說法,你是不是還要考慮客戶電腦突然藍(lán)屏了呢,突然死機了呢。這樣算的話這種意外情況就太多了。而且你很難判斷客戶的情況的
回答2:你需要設(shè)計冪等接口。也就是說,一個接口請求一次與請求多次(或短時間內(nèi)請求多次)效果是一樣的。這樣倘若客戶斷網(wǎng)了也沒關(guān)系,重新請求就好了。
回答3:提交請求告訴用戶已提交(在處理中),請求成功后再告訴用戶付款成功正常第三方調(diào)用支付不是會跳到等待頁面嗎?里面有一個已經(jīng)支付的按鈕和其他按鈕,我覺得就是以防萬一沒接收到回調(diào),用戶可以自己按“已經(jīng)支付”按鈕
回答4:后臺返回值意味著后臺已經(jīng)處理完畢了,這時斷網(wǎng)就是說客戶端的網(wǎng)絡(luò)斷了,和服務(wù)器沒關(guān)系了,至于處理,只能呢個等客戶端重新聯(lián)網(wǎng)以后發(fā)送請求查詢再把處理完畢的結(jié)果給拿回來
相關(guān)文章:
1. MySQL數(shù)據(jù)庫中文亂碼的原因2. php - mysql連表統(tǒng)計查詢3. MySQL分表之后如何做排序的問題4. mysql - 連續(xù)的24條sql語句,一條條查,還是union all好?5. mysql主從復(fù)制 REPLICATE_DO_DB 參數(shù)從服務(wù)器reboot后每次都回滾為初始設(shè)置6. MySQL不知道錯哪里了?7. mysql事務(wù)日志的一些問題8. Mysql存儲過程問題9. 數(shù)據(jù)庫 - mysql boolean型無法插入true10. phpstuty 修改完監(jiān)聽端口,apache無法啟動
