作者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/cn.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