等待gif出口

时间:2012-02-29 10:39:53

标签: javascript jquery ajax django

我有一个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

1 个答案:

答案 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(); });
});