[英]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.