2017-03-03 69 views
1

在我製作的html/css/js瀏覽器遊戲中,我確定我最終需要保存功能。我之前使用過數據庫保存數據,但我的其他編碼朋友推薦使用JSON。哪種方法更好?更高效?更輕鬆?保存數據:JSON或數據庫?

只有少數字符串和大多數小整數正在保存。一些面向對象的編程被使用。

感謝您的任何反饋意見。

回答

1

您選擇的一部分將取決於您關心的用戶可以訪問保存數據的多少,以及真正的遊戲首先是什麼。

對於這個問題,json或xml是很好的保存格式,您可以將所有信息轉儲並稍後輕鬆讀取。但是,如果您將它保存在本地計算機上,用戶顯然可以訪問它。

同樣在本地存儲的東西意味着你不依賴網絡任何東西總是很好,除非你的遊戲已經依賴於網絡。

如果你有任何在線播放本地保存數據在大多數情況下顯然是不好的。 反對它取決於你的遊戲在做什麼。

最後,運行中使用本地保存的東西要快得多。而且由於代理服務器或任何阻止他們獲取其保存數據的用戶而擔心有網絡問題的用戶就更不用說了。

我會說本地存儲與json/xml更有效/更容易。但缺點是它不太安全,容易被意外刪除/損壞(這就是爲什麼許多蒸汽遊戲具有本地保存功能而且還有云備份)。

0

JavaScript Object Notation(http://www.json.org/)是一種輕量級的數據交換格式。這不是存儲數據的格式!使用JSON在您的服務器和客戶端之間傳遞數據,但將數據存儲在適當設計的表格中,並存儲在許多可用的數據庫之一中。如果你有一些字符串和整數,只需創建一個簡單的表。將JSON作爲字符串存儲在數據庫中是褻瀆!

+1

警告:有些情況下存儲序列化數據非常合理。 –

+1

這是誤導。是的,JSON是一種交換格式。 (它也編碼一個有效的JavaScript表達式,這是它存在的理由。)但是,存儲在表中而不是存儲字符串是一種錯誤的選擇。 OP的職位正在嘗試存儲文檔。 SQL沒有強大的文檔層次概念 - 該需求是通過外鍵和應用程序邏輯間接實現的。 在這種情況下,接受和檢索JSON的NoSQL存儲是一個很好的解決方案,特別是當應用程序是基於JS時。這並不意味着數據庫正在存儲一個JSON字符串。 –

1

Porquéno los dos? 您是否在尋找本地保存或雲端保存?對於本地保存,請使用IndexedDB。

https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API

您可以在其中存儲JSON文件。

對於雲保存,請使用本機支持的JSON存儲(如MongoDB或CouchDB)。 CouchDB是以最少配置將JSON存儲直接展示給廣域網的不錯選擇。