2012-02-29 78 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