場景:
1、前端發送處理請求后,后端開始處理。
2、后端處理時間較長,估計有2、3分鍾(時間每次都不太確定)才能處理完。
3、后端處理完后,前端在頁面上顯示處理完成。
解決:
這類問題其實本質問題是:后端如何給前端主動推送消息?
答案是:只使用http無法推送。
就只能
定時發送請求問服務端,是否處理完成。
建立websocket,這樣服務端也就可以主動給客戶端推送消息了。但是事實上,因為各方面網絡環境的原因,websocket的連接可能會斷開。造成斷開的原因很多(比如手機的客戶端,信號不好;比如突然斷網;比如服務器波動;比如服務器可能帶寬一時不足等等),都有可能斷開。
所以用websocket也必須進行一個較長時間的定時發送http請求以避免斷開的情況。
所以還是定時發送http請求最好。
當然可以做一些優化,比如最少需要2分鍾才能完成,那么詢問的http請求可以在2分鍾之后再發送。