2012-11-23 62 views
0

與編程相比,此問題更具理論性。JavaScript應用程序存儲最佳實踐

我目前正在使用Knockout.js編寫單頁JavaScript應用程序。我選擇Knockout是因爲我喜歡它處理DOM更新的方式,但它確實需要您編寫自己的REST後端以用於數據存儲和加載。

我的應用程序是一個企業應用程序,其中服務器和客戶端將安裝在它自己的服務器實例上,並且不與任何其他用戶共享。它不需要認證,只需要保存和加載JavaScript對象。

我最初的想法是使用一個node.js後端與Mongo進行存儲,但這對我來說似乎有點矯枉過正。將原始json保存爲平面文件並將其保存/加載(如果需要)會被認爲是不好的做法嗎?我看到的唯一問題是多個用戶使用該應用程序並嘗試同時保存數據。有沒有簡單的方法來處理JSON數據的合併?

+0

我認爲「合併」是否合適取決於數據和業務規則。允許併發用戶編輯相同的數據是一個複雜的主題,需要考慮具體的用例。 – goat

+0

爲什麼不使用IndexedDB API? –

回答

0

如果有可以修改這些數據的應用程序併發訪問,我肯定會建議將它保留在服務器端。這取決於你的應用程序,但合併JSON很可能會成爲一場噩夢。我相信從後端管理併發訪問會更好。 Mongo DB是一個不錯的選擇,但請看看CouchDB(它提供了REST接口)和Redis。另一方面,如果併發不是問題,則可能需要檢查HTML5本地存儲,它基本上允許您在客戶端存儲鍵/值對。這是Cookie的一個很好的選擇,因爲它不會在每個請求上發送,並允許您以更清晰的方式存儲更多數據。

+0

感謝您的提示。 CouchDB正是我正在尋找的 - 一個簡單的數據庫,無需中間人。 – CheapDevotion