簡體   English   中英

Rails 在文件上傳期間從控制器更新進度條

[英]Rails update Progress Bar from Controller during file upload

我對網絡編程還是比較陌生,所以請耐心等待。

rails 5.0 應用程序目前運行良好,並上傳包含產品庫存的 .csv 文件。 問題是,如果這個文件非常大,上傳可能需要一分鍾以上,客戶端上的人可能會認為服務器崩潰或他們失去了互聯網連接。

當前的實現有一個視圖,其中包含一個用於選擇文件的表單。 選擇后,控制器會讀入文件。 視圖仍然位於屏幕上,但此時控制權已轉移到服務器。

我想讓服務器每讀入 N% 的文件就向視圖發送一次更新,以便視圖可以顯示和更新進度條。 我認為這可以通過 AJAX 調用和 JSON 或 Javascript 來實現,但我不確定。 這是一個合理的方法嗎?

根據您的描述,似乎有兩種方法可以解決此問題。

1) 使用 ActionCable 並發送該特定文件的進度消息。 該消息可以包含已處理的文件量的百分比。 您可以在此處閱讀 ActionCable 以及如何開始。

2)您可以使用間隔發生的ajax調用。 基本上,將有 javascript 代碼調用您的應用程序中的路由來檢查您正在處理的文件的進度。 因此,在處理文件的控制器操作中,您將在處理文件時存儲進度。 它可以在Redis 中,也可以在 rails 應用程序的內存中。 只要它是可以從不同的請求訪問的東西。 它甚至可能存儲在會話中,即使我之前沒有像這樣測試過使用它。 您的客戶端 javascript 將調用以間隔報告進度的路由。

至少這是我的想法。 我希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM