2013-02-18 12 views
0

我使用javascript上傳多個文件。如何使用主幹更新文件上傳消息?

上傳文件後,我需要運行幾個處理函數。

由於需要處理時間,因此我需要在前面有一個UI,告訴用戶整個過程剩下的估計時間。

基本上我有3個功能:

  1. /上傳 - 這是上傳文件的端點
  2. /生成/元數據 - 這是下一個端點後應觸發/上傳
  3. /進程 - 這是最後一個端點。在/ generate/metadata後應該被觸發

這就是我期望屏幕基本看起來像的樣子。應顯示

enter image description here

如剩餘百分比和離開時間的信息。

但是,我不確定是否允許服務器提供信息,或者我僅僅使用javascript做了一個駭人估計。

我還需要更新屏幕比如告訴用戶的消息,如

「目前上傳」

如果我在功能1.

「生成的元數據」如果我在功能2.

「處理......」如果我在功能3.

功能2後只發生1.

功能3成功完成只有我已經使用q.js承諾來處理這方面的一些零件2.

順利完成後發生,但代碼已經變得scarily凌亂。

我最近遇到Backbone,它允許結構化的方式來處理單個頁面的應用程序行爲,這是我想要的。

我沒有問題,服務器端返回json響應成功或失敗的端點。

我想知道什麼是實現使用Backbone.js的

回答

2

您可以使用一個「進步」的文件或數據庫條目存儲後臺進程的狀態此功能的好方法。讓你的後端進程定期更新這個文件。例如,寫這篇文章的文件:用戶提交

{"status": "Generating metadata", "time": "3 mins left"} 

後的文件具有前端開始使用簡單的Ajax調用和setTimeout ping一臺後端progress功能。 progress函數將簡單地打開這個文件,獲取JSON格式的狀態信息,然後更新前端進度條。

您可能希望在Ajax調用來連接到你的模型(一個或多個)。讓您的前端視圖監視status的更改並相應更新(例如進度條)。

+0

謝謝。在使用主幹之前是否實現了這樣的事情? – 2013-03-02 06:16:42

+1

@kimsia我在生產中有一個應用程序,遵循這個確切的範例。模型查詢狀態更新和進度模態(視圖)相應地更新。 – 2013-03-02 08:30:21

+0

謝謝你的回答。順便問一下,請問您是否使用除骨幹以外的任何其他js框架來執行此操作?例如,木偶? – 2013-03-02 09:04:02

相關問題