我有一个Django应用程序,其中包含一些我向用户显示的统计图表。 我还有这些图表的导出选项。 当我单击导出按钮时,我在服务器上创建csv并将其返回给客户端,因此文件立即开始下载。 这一切都很好,但创建csv需要时间,我想显示一些“等待...”gif,直到文件开始下载。最好的方法是什么? (我不想创建临时文件链接,并在获得ajax响应后转到该链接。) 我的django视图返回:
response = HttpResponse(open("statistics.tar.gz").read(), content_type='application/tar.gz')
response['Content-Disposition'] = 'attachment; filename=statistics_%s.tar.gz' % str(get_customer_date(request.customer, datetime.utcnow())).split(" ")[0]
response['Content-Length'] = os.path.getsize("statistics.tar.gz")
response.set_cookie("export_download", value='download')
return response
答案 0 :(得分:0)
我会创建一个不可见的iframe作为链接的目标。点击该链接,显示gif。当iframe停止加载时隐藏它:)
类似的东西(从未测试过,但理论上应该有效):
$("a#download-link").click(function(){
$("#loading-div").show();
$("body).append('<iframe id="myIframeId" ...>');
$('iframe#myIframeId').attr('src', url);
$('iframe#myIframeId').load(function() { $("#loading-div").hide(); });
});