我有一个使用 django 运行的网站的 jquery moblie 前端。我有一个用例,有些事情可能需要很长时间才能完成,所以我希望用户在发生时看到它的进展;在我的示例中,它是一系列事件以及它们是否成功/失败。
在后端,我有一个 generator
吐出此信息的对象。它包裹着一个 HttpResponse
对象以完成更新的流方面。一个简单的网页(只有 html 和 body 标签)表明它按预期工作。
然而,jquery mobile(至少在默认情况下)喜欢在显示之前加载整个页面。
我不介意将此输出显示为对话框。
有任何想法吗?
最佳答案
您可以使用通常的 AJAX 请求轮询 Django 以获取进度更新。
它不能解决 jquery 移动和长轮询问题,但它为您提供了将长时间运行的任务从前端放到后端(例如使用 Celery)所需的灵活性。
为了保持性能,我建议将状态从长时间运行的任务更新到 memcached 实例。
在您的 View 中,只需获取进度并返回即可触发对话框或更新某些 div。更好 - 只是结果。
关于django - jquery 移动和动态页面内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6528855/