我有一个长时间运行的任务(>1.5 分钟),我希望能够使用 ajax 提供用户完成状态。 这是我目前正在做的事情: 我正在使用 ajax 来处理上传(使用 ajax 上传插件),并且在任务运行时显示繁忙标签。 我希望能够显示完成的百分比(不是上传的百分比 - 我已经为此提供了更新。)即在我的 Excel 文件上传完成并开始处理行后,我希望能够提供状态更新给用户。
这就是我的研究/个人知识引导我的地方: 1.使用线程 2.使用JMS或某种消息传递 3. 使用grails 事件。 (不确定这将如何运作)
有人知道实现此目的的最佳方法是什么吗?
最佳答案
当我过去这样做时,我使用了以下方法:
- Dispatch the long running process in another thread 。长时间运行的进程会更新某些 session 范围组件(或数据库)中的进度
- 将用户的浏览器返回到该页面并启动一些 javascript that regularly polls用于获取当前进度的服务器端 Controller
jQuery UI progress bar如果您想显示完成百分比,则非常容易使用。
关于jquery - 长时间运行任务的 Grails 状态更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21770218/