【发布时间】:2018-11-30 09:04:55
【问题描述】:
我正在尝试制作一个基于 Django 的 Web 应用程序,该应用程序接受用户输入并执行在近五到十分钟内完成的繁重后台任务。后台任务完成后,很少有参数提供给模板进行渲染。一切正常,然后页面加载。
但是当我尝试为此使用 AJAX 时,由于后台繁重的处理,页面加载这么长时间似乎不太好,我无法弄清楚如何重新加载页面(虽然我是能够在完成时显示警报,但我想重新渲染页面而不是这个)
这是我的views.py代码:
def index(request):
#All Background process code goes here
return render(request, 'form.html', {'scanResults' : scanResults, 'context_list' : context_list, 'scanSummary' : scanSummary})
这是我的 AJAX 调用
<script type="text/javascript">
$(document).on('submit','#scanForm', function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url: '/scanner/',
data: {
email: $('#email').val(),
context: $('#context').val(),
csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),
},
success:function(response){
alert('Scan Completed');
location.reload();
}
});
});
我不知道,我应该在成功函数中写什么来重新加载索引函数返回到模板的页面。
我的主要动机是显示一个进度条,告诉后台进程的进度(我还没有实现代码),一旦进程完成,刷新页面并响应。
谢谢
【问题讨论】: