2017-09-05 54 views
0

我在學習Vapor,並陷入了與服務器交互的正確途徑。所以這就是我在做什麼的想法..Vapor - 從HTML獲取模型

你上傳一個XML文件到服務器,它處理它,把它變成一個大的Model對象列表,並返回一個json對象列表。使用葉子,我將模型填充到表格視圖。例如:

#loop(objects, "object") { 
     <tr> 
     <td>#(object.id)</td> 
     <td>#(object.name)</td> 
     </tr> 
    } 

這是所有的工作文件。這是我卡住的地方。在我的桌面視圖的頂部,我有一些按鈕,將對對象數組執行操作。即:批量重命名對象,或對其應用某種邏輯。然後我希望能夠以各種格式下載模型對象列表。

我希望所有這些邏輯能夠存在於我的服務器上。我迷失的地方是如何通過Vapor服務器來傳遞這麼大的列表。服務器是否應該存儲當前Web會話的對象列表?我研究了在HTML中使用Javascript,但是我需要解析DOM來創建我的模型對象。那時,蒸氣中將不會發生任何事情。 (這些任務中的一些將是非常強大的服務器

我在看流利,但問題是我有一個當前會話的數據庫,並在完成時刪除它嗎?我會關心內存問題嗎?這個概念呢?我想當你上傳XML時,它會創建一個會話ID,並且所有的請求都是基於這個的,然後這個ID會在某個時間點到期,這就是所有猜測哪一個會最好..

上操縱蒸汽模型對象的最佳途徑的任何想法?

謝謝!

回答

0

我會想當你上傳XML時,它會創建一個會話ID,並且你的所有請求都是基於此。然後該ID將在某個時間到期。

賓果。如果您確定要在服務器端進行此處理,那麼您已經回答了您的問題。您應該有一個數據庫表,其中模型對象隨同隨機會話ID一起存儲(可以使用由Vapor管理)。

當您的用戶完成處理模型時,您將刪除具有其會話ID的所有對象。您還應該定期運行一個計劃作業,刪除屬於過期會話的模型。

如果您決定實施用戶身份驗證,那麼您可以使用用戶ID而不是會話ID。