我希望用户能够单击按钮生成报告,向他显示生成报告动画,然后在报告生成完成后,在页面上显示成功一词。
我正在考虑在单击生成报告按钮时创建芹菜任务。任务结束后,我更新UI的最佳方式是什么?如果任务已经完成,我是否应该经常通过AJAX调用进行检查?在Django中有更好的方法或第三方通知类型的应用程序有助于这个过程吗?
谢谢!
编辑:我做了更多研究,我唯一能找到的是与django-angular
和django-websocket-redis
的三向数据绑定。对于这个小功能来说,似乎有点过分。我想没有网络套接字,唯一可行的方法是每隔x秒不断轮询后端,检查任务是否完成。还有更多想法吗?
答案 0 :(得分:0)
轮询是一个很好的简单解决方案。避免为您的网站添加不必要的开销以获得简单的功能。
while Result.state == u'PENDING':
#do your stuff
if Result.state == u'SUCCESS':
#Finished
else:
#something wrong
答案 1 :(得分:0)
请注意,轮询意味着您将保持请求和连接处于打开状态。在具有大量命中的Web应用程序上,这将浪费大量资源。但是,在较小的网站上,开放的连接可能不是什么大问题。选择一个最容易实施的策略,以便您在实际遇到性能问题时稍后进行更改。