[問題] ajax的timeout

看板Ajax作者 (mic)時間7年前 (2017/10/02 23:57), 編輯推噓4(407)
留言11則, 3人參與, 7年前最新討論串1/1
最近在練習ajax 的時候 遇到了如果連線過久的問題 也在ajax 加上了 timeout 瀏覽器會跳出alert訊息 但網頁還是卡住 爬文查了一下 可能是後端程式那邊卡住 想請問 如果後端程式呼叫ajax 然後回傳過久 所以啟動了timeout 但如何讓後端程式繼續執行? 目前想到的方法是 在error那邊return 一個值 然後讓後端接收到值就如何動作嗎 還是有更好的方法? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.246.121.216 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1506959873.A.666.html

10/03 11:03, 7年前 , 1F
卡住?你的callback不會只在成功的地方寫吧
10/03 11:03, 1F

10/03 11:03, 7年前 , 2F
再來,後端程式不會呼叫AJAX的,只有前端AJAX呼叫後端
10/03 11:03, 2F

10/03 11:04, 7年前 , 3F
最後,後端應該return繼續做事而不是request結束就結束
10/03 11:04, 3F

10/03 11:06, 7年前 , 4F
ignore_user_abort
10/03 11:06, 4F

10/03 11:07, 7年前 , 5F
當然現在這種有需要背景長時間運算後回傳值的架構
10/03 11:07, 5F

10/03 11:07, 7年前 , 6F
大部分都改用 WebSocket 去做了
10/03 11:07, 6F

10/03 11:08, 7年前 , 7F
你不可能把 Ajax timeout 無限大一直放在那邊等
10/03 11:08, 7F

10/03 11:08, 7年前 , 8F
也不需要搞兩支 API 一個下命令一個問進度
10/03 11:08, 8F

10/05 10:14, 7年前 , 9F
後端是 php? 不要用 session file 改用 memcache 或 redis
10/05 10:14, 9F

10/05 10:14, 7年前 , 10F
注意 race condition
10/05 10:14, 10F

10/19 11:19, 7年前 , 11F
也許可以嘗試改用socket.io
10/19 11:19, 11F
文章代碼(AID): #1Pqc81Pc (Ajax)
文章代碼(AID): #1Pqc81Pc (Ajax)