2012-02-29 65 views
0

我有一个Django应用程序与我显示给用户的一些统计图表。 我也有这些图的导出选项。 当我点击导出按钮时,我在服务器上创建csv并将其返回给客户端,因此文件立即开始下载。 这一切都很好,但创建csv需要时间,我想显示一些“等...”的gif,直到文件开始下载。什么是最好的方式来做到这一点? (我不想创建临时文件链接,并转到链接入门Ajax响应后)。 我的Django视图返回:等待出口gif

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

我会创造一个无形的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(); }); 
}); 
+0

感谢您的答复。你能解释一下你的意思吗? (你可以显示一些代码示例或给一些链接在哪里阅读关于它) – alexarsh 2012-02-29 11:46:39

+0

我更新了我的答案 – 2012-02-29 11:58:36

+0

非常感谢,亚历克斯 – alexarsh 2012-03-04 17:06:05