长期运行任务的逐步增强
-
28-09-2019 - |
题
我正在寻找改进网页,该网页启动长期运行(> 2分钟)的服务器端任务。该页面的当前版本只是在整个任务的整个过程中时钟,这对用户来说可能非常沮丧。
我已经对如何改善用户的体验有一些想法,但是它们都将在某种程度上涉及Ajax的使用。由于我对这个项目的以前经验,我知道并非所有用户都启用了JavaScript或可用。
假设服务器端过程已经尽可能优化,我还能做些什么来改善 全部 用户尽可能多?
解决方案
移动长期运行的服务器流程。
当用户启动任务时,应用程序可以将消息写入某种队列;这通常非常快,因此用户可以快速获得控制权。一旦邮件排队,另一个专业过程(服务,计划的任务,CRON作业等)将其拾取并在第一个机会时执行适当的任务。
对于启用JavaScript的用户,您可以设置一个计时器,以通过AJAX检查任务的状态并在任务完成后提醒他们。
您可以通过在您的页面上的一个共同的可见位置显示未待处理和完成的任务来保持非javascript用户的通知。当然,他们必须继续浏览以从中受益,因此您还需要明确表明,如果用户在等待完成任务,则偶尔应该刷新页面。
其他提示
- 在数据库中创建表(或内存对象)
- 长期运行的任务将在此表中更新进度(对象)
- 网页将显示此表(或对象)的数据。如何刷新页面 - 这是您的选择。
不隶属于 StackOverflow