我有一个管理员控制的功能(导入数据库),可能需要一些时间才能完成,因此我想在此期间向用户显示一些反馈 - 例如进度条或只是一些消息。即使在长时间操作期间分批发送页面也足够了。
在Django中最简单的方法是什么?
答案 0 :(得分:3)
Ajax轮询 - 使用客户端计时器,您不断地在服务器上轮询它的状态。过程如下:用户配置数据库详细信息并点击“上传”。文件传输和页面请求在服务器上启动异步进程以执行数据库导入。当用户单击上载时,它会启动一个客户端计时器,该计时器会定期向服务器发送一个AJAX请求,询问它的进度。服务器返回JSON,客户端脚本确定它想要用它做什么。
COMET - 我对此并不熟悉,但传统的AJAX通过客户端向服务器发送请求来工作。它被称为“拉”通信。在COMET,这是推动。即使服务器没有要求,服务器也会向客户端推送有关其进度的数据。与轮询相比,这会在服务器上产生较小的压力。 Google为使用COMET with Django的人提供了一些结果。
反向AJAX - 与COMET类似。 Reverse Ajax with Django
(道歉,我最不知道最后2个,但我认为你至少想知道它们存在)
答案 1 :(得分:1)