我在Django中构建了一个带有进度条的简单图像上传器。最初上传图片时,我确实看到进度条正确更新为100%。但是,我还在服务器端进行了进一步的操作(如缩放,保存在不同的位置,创建缩略图等)。
有没有办法让客户端知道'处理图像'正在进行中,并通过另一个进度条报告这个?例如?
感谢您的帮助!
答案 0 :(得分:0)
理论上你的Django应用程序可以定期刷新自己并维护服务器上的状态,更新进度指示器,因为它检测到进程处于哪个阶段,但鉴于你标记了JQuery和Ajax,我怀疑你是否希望这样做在客户端更新。
如果您通过多个HTTP请求将图像处理从一个视图传递到Django中的下一个视图,那么在JQuery中,您将发送多个Ajax请求以“完成”图像直至完成。 当每个请求完成并向客户端返回一些内容时,您的JQuery可以获取完成状态,相应地更新您的进度条,然后将序列中的下一个请求作为下一个请求提交给Django。 如果您的Django应用程序只是在后台向服务器发送一个HTTP请求,那么除非Django应用程序可以在不同的视图中公开它的进度,否则客户端无法检查进度(我知道)不知何故,你的客户端可以定期检查它,看看它在哪里。