作者mickeyboy (mic)
看板Ajax
標題[問題] ajax的timeout
時間Mon Oct 2 23:57:51 2017
最近在練習ajax 的時候
遇到了如果連線過久的問題
也在ajax 加上了 timeout
瀏覽器會跳出alert訊息
但網頁還是卡住
爬文查了一下
可能是後端程式那邊卡住
想請問 如果後端程式呼叫ajax 然後回傳過久
所以啟動了timeout
但如何讓後端程式繼續執行?
目前想到的方法是
在error那邊return 一個值 然後讓後端接收到值就如何動作嗎
還是有更好的方法?
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.246.121.216
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ajax/M.1506959873.A.666.html
1F:推 visa9527: 卡住?你的callback不會只在成功的地方寫吧 10/03 11:03
2F:→ visa9527: 再來,後端程式不會呼叫AJAX的,只有前端AJAX呼叫後端 10/03 11:03
3F:→ visa9527: 最後,後端應該return繼續做事而不是request結束就結束 10/03 11:04
4F:推 visa9527: ignore_user_abort 10/03 11:06
5F:→ visa9527: 當然現在這種有需要背景長時間運算後回傳值的架構 10/03 11:07
6F:→ visa9527: 大部分都改用 WebSocket 去做了 10/03 11:07
7F:→ visa9527: 你不可能把 Ajax timeout 無限大一直放在那邊等 10/03 11:08
8F:→ visa9527: 也不需要搞兩支 API 一個下命令一個問進度 10/03 11:08
9F:推 VdustR: 後端是 php? 不要用 session file 改用 memcache 或 redis 10/05 10:14
10F:→ VdustR: 注意 race condition 10/05 10:14
11F:推 rexyeah: 也許可以嘗試改用socket.io 10/19 11:19