聽起來很像是在問說 ajax的success 跟 error 處理
如果網路斷線,ajax就會跳出error,想要讓客戶知道error就在error 寫資訊顯示在網頁上
$.ajax({
type: 'POST',
url: 'ajax_process.php',
dataType: 'json',
data: 'data',
success: function (sMsg){
console.log(sMsg.msg);
},
error: function (sMsg1, sMsg2){
$('.ajax-content').html('Ajax Error');
}
});
可以得知 ajax 回傳的字串嗎?這樣我這邊就可以重新定義「給人看的」訊息
我的回答跟浩瀚星空大大所說的ajax的處理問題的方法一樣觀念,如果說是連線時斷線(連線應該是用ajax)那ajax就會吐出錯誤碼到瀏覽器端,而js依得到的錯誤訊息去呈現畫面(p.s 給人看的 哈哈)。
我後來回去看一下問題,你的問題需求是「電商」及「非預期」,不過我們回答的點都例子的「連線」上,浩瀚大也有講了一下其他處理方式,
「非預期」我會分為browser端跟sever端:
browser端的非預期情況我是預設為「資料為空」,表單該填的資料沒填,商品資料(價格品項)沒撈到,js在發送訂單前要先確定好傳給server端的資料(格式正確、有無值),相關的關鍵字就「表單驗證」吧
至於server端的話,因為電商的金流主要是串接金流api,情況比較單純
金流api要求的資料沒有給對,當訂單成立後是否要回饋通知(ex寄信)給browser端知道,不過結帳頁面通常是金流那邊再跑,所以如果訂單出問題(跟錢有關),金流的結帳都會回饋通知給使用者。
然後你例子中「斷線卡著」的情況應該是server端程式寫錯或是沒寫好
如:CROS 這個跟http 有關係不過處理也是在ajax上
大概是這樣吧?
嗯,目前想到的就是連線萬一中斷時的處理。
後端語言要做錯誤處理Exceptions,避免操作一半,資料不完全,
至於網路斷了,user也看不到網頁了,只能等之後連上網再提醒user,
訂單未完成。
什麼叫做 沒有了網路?
這句話要定義清楚,
如果使用者端的網路斷了應該會看到404吧,
Chrome可能會看到小恐龍(不知道現在還有沒有)...
其實你的問題很籠統。不知道該怎麼回答你才適合你
首先,要了解的是。是否為ajax後端連動式。還是post或get式的送訂單方式。
前者來說,一般當無網路的情況下,其ajax本身就會回應一個錯誤回來。
你需要在其js上寫好對應的錯誤。並彈跳出訊息出來。而不是在那邊等。
後著來說,會比較沒有什麼處理的方式,畢竟post或get下去後就是一個切頁動作。
一個無網路的狀態下,就是會給你404或是400錯誤出來。也不需要再談什麼後續了。
我可以將我的流程大約跟你說一下。
一般來說,選商品到購物車時,其實都還未有訂單的出現。
一但從購物車中,確定要結帳號,就會先產生一個訂單。並開始進行結帳的動作。
這時訂單的狀態就是一個未結帳的狀態跟未正式下訂的狀態。
由於除了信用卡、web atm等這些可以直接線上付款確定的情況。可以立即將訂單變為「確定」及「正式下訂」的狀態。
其它就有可能是「等待付款(未付款)」及「正式下訂」
這下訂單會依情況會有7~15天的保留期。這要看業主的意思。
超過時間的訂單就得要自動變為無效單。