javascript - 關(guān)于ajax請求斷網(wǎng)后的問題
問題描述
想問大家個(gè)問題,一個(gè)ajax請求發(fā)送給后臺(tái)了,后臺(tái)開始處理了但是給前端返回值的過程中斷網(wǎng)了,前端肯定會(huì)得到timeout,但是后臺(tái)已經(jīng)處理了這個(gè)請求,這種情況咋辦?我覺得后臺(tái)不應(yīng)該處理才對,如果支付寶或者微信支付遇到這樣的情況他們肯定不可能說把錢扣了然后前端給出一個(gè)斷網(wǎng)的提示吧?求知道怎么處理的同行給個(gè)策略,謝謝!!
問題解答
回答1:如果按照這種說法,你是不是還要考慮客戶電腦突然藍(lán)屏了呢,突然死機(jī)了呢。這樣算的話這種意外情況就太多了。而且你很難判斷客戶的情況的
回答2:你需要設(shè)計(jì)冪等接口。也就是說,一個(gè)接口請求一次與請求多次(或短時(shí)間內(nèi)請求多次)效果是一樣的。這樣倘若客戶斷網(wǎng)了也沒關(guān)系,重新請求就好了。
回答3:提交請求告訴用戶已提交(在處理中),請求成功后再告訴用戶付款成功正常第三方調(diào)用支付不是會(huì)跳到等待頁面嗎?里面有一個(gè)已經(jīng)支付的按鈕和其他按鈕,我覺得就是以防萬一沒接收到回調(diào),用戶可以自己按“已經(jīng)支付”按鈕
回答4:后臺(tái)返回值意味著后臺(tái)已經(jīng)處理完畢了,這時(shí)斷網(wǎng)就是說客戶端的網(wǎng)絡(luò)斷了,和服務(wù)器沒關(guān)系了,至于處理,只能呢個(gè)等客戶端重新聯(lián)網(wǎng)以后發(fā)送請求查詢再把處理完畢的結(jié)果給拿回來
相關(guān)文章:
1. docker - 如何修改運(yùn)行中容器的配置2. 關(guān)于docker下的nginx壓力測試3. 為什么我ping不通我的docker容器呢???4. nignx - docker內(nèi)nginx 80端口被占用5. Span標(biāo)簽6. redis啟動(dòng)有問題?7. angular.js - webpack build后的angularjs路由跳轉(zhuǎn)問題8. SessionNotFoundException:會(huì)話ID為null。調(diào)用quit()后使用WebDriver嗎?(硒)9. java - Spring MVC無法識(shí)別Controller導(dǎo)致返回的結(jié)果是404?10. java - Collections類里的swap函數(shù),源碼為什么要新定義一個(gè)final的List型變量l指向傳入的list?
