如果不使用小程序的webScoket,通過長輪詢來實現數據實時接收:
長輪詢:當服務器收到客戶端發來的請求后,服務器端不會直接進行響應,而是先將這個請求掛起,然后判斷服務器端數據是否有更新。如果有更新,則進行響應,如果一直沒有數據,則到達一定的時間限制(服務器端設置)才返回。 。 客戶端JavaScript響應處理函數會在處理完服務器返回的信息后,再次發出請求,重新建立連接。
const requestTask = wx:request({ url:"", header:{...} data:{}, method:'POST" success: res => { if('輪詢成功'){ 更新所需要的接口。。。。 }else if('超時'){ 再調用該請求 } } }) onHide(){ requestTask ? requestTask.abort() : '' } onUnload(){ requestTask ? requestTask.abort() : '' }
在頁面進入后台以及銷魂后。即使正在輪詢的接口
abort()方法取消當前request請求