2015-04-02 72 views
0

我無法弄清楚如何「捕獲」事件(如果存在的話),當我的Rails應用程序完成發送文件與send_data方法:Rails的SEND_DATA和Javascript處理程序時SEND_DATA完成

# view 
= link_to 'Download!', download_path 

# controller 
def download 
    # some logic 
    send_data csv_data, filename: 'export.csv' 
end 

我想捕捉事件當我的服務器完成發送 CSV文件到客戶端,以便來隱藏一個load.gif圖像顯示正確,當你點擊下載鏈接(沒有任何相關的AJAX在這裏,要清楚)。

任何幫助將不勝感激,謝謝!

(紅寶石1.9.3,Rails的3.2.13)

類似的問題(使用的cookie):Browser event when downloaded file is saved to disk


更新:

我試圖聽我的鏈接的事件,但沒有顯示任何事件:

monitorEvents(document.body.querySelectorAll('a#export_link')); 

回答

0

我認爲這會更容易,如果喲ü用jQuery和AJAX

$('button').on('click', function(){ 
    $.post(url, {data}, success: function() { alert("DONE!"); 
    }); 
}); 
+0

發送數據我知道這將是巨大的在這裏,但我不能響應JS請求(JavaScript安全規則)(http://stackoverflow.com/發送文件問題/ 16242359 /如何使用rails-send-data-from-ajax-post) – MrYoshiji 2015-04-02 19:04:23

+1

如何使用回調? 'after_save:do_this,只有:[:download]' – pauloancheta 2015-04-02 19:10:50

+0

這是一個好的開始,但我根本沒有修改數據。我只是導出一個巨大的價格列表,當我們點擊下載鏈接時產生的(你的例子是混合模型回調,比如''after_save'和控制器回調''before_filter') – MrYoshiji 2015-04-02 19:17:04