【问题标题】:wait gif on export等待导出 gif
【发布时间】:2012-02-29 10:39:52
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery ajax django


    【解决方案1】:

    我会创建一个不可见的 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(); });
    });
    

    【讨论】:

    • 感谢您的回复。你能解释一下你到底是什么意思吗? (你能否展示一些代码示例或提供一些链接来阅读它)
    • 嗨。它仍然对我不起作用,因为由于某种原因未触发加载事件。
    • 你可以试试$('iframe#myIframeId').ready(function() { ... });
    猜你喜欢
    • 1970-01-01
    • 2021-12-22
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多