javascript - 關(guān)于ajax請(qǐng)求斷網(wǎng)后的問(wèn)題
問(wèn)題描述
想問(wèn)大家個(gè)問(wèn)題,一個(gè)ajax請(qǐng)求發(fā)送給后臺(tái)了,后臺(tái)開(kāi)始處理了但是給前端返回值的過(guò)程中斷網(wǎng)了,前端肯定會(huì)得到timeout,但是后臺(tái)已經(jīng)處理了這個(gè)請(qǐng)求,這種情況咋辦?我覺(jué)得后臺(tái)不應(yīng)該處理才對(duì),如果支付寶或者微信支付遇到這樣的情況他們肯定不可能說(shuō)把錢(qián)扣了然后前端給出一個(gè)斷網(wǎng)的提示吧?求知道怎么處理的同行給個(gè)策略,謝謝!!
問(wèn)題解答
回答1:如果按照這種說(shuō)法,你是不是還要考慮客戶(hù)電腦突然藍(lán)屏了呢,突然死機(jī)了呢。這樣算的話(huà)這種意外情況就太多了。而且你很難判斷客戶(hù)的情況的
回答2:你需要設(shè)計(jì)冪等接口。也就是說(shuō),一個(gè)接口請(qǐng)求一次與請(qǐng)求多次(或短時(shí)間內(nèi)請(qǐng)求多次)效果是一樣的。這樣倘若客戶(hù)斷網(wǎng)了也沒(méi)關(guān)系,重新請(qǐng)求就好了。
回答3:提交請(qǐng)求告訴用戶(hù)已提交(在處理中),請(qǐng)求成功后再告訴用戶(hù)付款成功正常第三方調(diào)用支付不是會(huì)跳到等待頁(yè)面嗎?里面有一個(gè)已經(jīng)支付的按鈕和其他按鈕,我覺(jué)得就是以防萬(wàn)一沒(méi)接收到回調(diào),用戶(hù)可以自己按“已經(jīng)支付”按鈕
回答4:后臺(tái)返回值意味著后臺(tái)已經(jīng)處理完畢了,這時(shí)斷網(wǎng)就是說(shuō)客戶(hù)端的網(wǎng)絡(luò)斷了,和服務(wù)器沒(méi)關(guān)系了,至于處理,只能呢個(gè)等客戶(hù)端重新聯(lián)網(wǎng)以后發(fā)送請(qǐng)求查詢(xún)?cè)侔烟幚硗戤叺慕Y(jié)果給拿回來(lái)
相關(guān)文章:
1. windows誤人子弟啊2. 冒昧問(wèn)一下,我這php代碼哪里出錯(cuò)了???3. MySQL主鍵沖突時(shí)的更新操作和替換操作在功能上有什么差別(如圖)4. python - linux怎么在每天的凌晨2點(diǎn)執(zhí)行一次這個(gè)log.py文件5. 數(shù)據(jù)庫(kù) - Mysql的存儲(chǔ)過(guò)程真的是個(gè)坑!求助下面的存儲(chǔ)過(guò)程哪里錯(cuò)啦,實(shí)在是找不到哪里的問(wèn)題了。6. 實(shí)現(xiàn)bing搜索工具urlAPI提交7. mysql優(yōu)化 - MySQL如何為配置表建立索引?8. 如何用筆記本上的apache做微信開(kāi)發(fā)的服務(wù)器9. 我在網(wǎng)址中輸入localhost/abc.php顯示的是not found是為什么呢?10. 關(guān)于mysql聯(lián)合查詢(xún)一對(duì)多的顯示結(jié)果問(wèn)題
