[問題] ajax的timeout

作者: mickeyboy (mickey)   2017-10-02 23:57:51
最近在練習ajax 的時候
遇到了如果連線過久的問題
也在ajax 加上了 timeout
瀏覽器會跳出alert訊息
但網頁還是卡住
爬文查了一下
可能是後端程式那邊卡住
想請問 如果後端程式呼叫ajax 然後回傳過久
所以啟動了timeout
但如何讓後端程式繼續執行?
目前想到的方法是
在error那邊return 一個值 然後讓後端接收到值就如何動作嗎
還是有更好的方法?
感謝
作者: visa9527 (高級伴讀士官長)   2017-10-03 11:03:00
卡住?你的callback不會只在成功的地方寫吧再來,後端程式不會呼叫AJAX的,只有前端AJAX呼叫後端最後,後端應該return繼續做事而不是request結束就結束ignore_user_abort當然現在這種有需要背景長時間運算後回傳值的架構大部分都改用 WebSocket 去做了你不可能把 Ajax timeout 無限大一直放在那邊等也不需要搞兩支 API 一個下命令一個問進度
作者: VdustR (京)   2017-10-05 10:14:00
後端是 php? 不要用 session file 改用 memcache 或 redis注意 race condition
作者: rexyeah (ccccccc)   2017-10-19 11:19:00
也許可以嘗試改用socket.io

Links booklink

Contact Us: admin [ a t ] ucptt.com