在电话差距

时间:2016-08-30 09:08:47

标签: android cordova

我即将潜入一个新的移动项目,更具体的移动TCG(交易卡游戏)Deckbuilder应用程序。由于它即将成为我的第一个移动应用程序,我已经做了一些研究并遇到了Phonegap。我已经完成了几个基于节点的网络应用程序,所以它似乎就在我的小巷里。

我开始搜索如何在手机上存储任何数据,并发现有3种可能性:

  • MemoryStore(SQLLite?)
  • LocalStorageStore
  • WebSqlStore
对于我的应用程序的复杂性,

LocalStorageStore 似乎无从谈起。因此它位于 MemoryStore WebSqlStore 之间。

什么适合我的项目?你有多复杂?

所以我的想法是拥有一个"大"包含所有现有卡片的json文件:

{
  id: xx,
  name: 'name'
  manacost: xx,
  attack: xx,
  defence: xx,
  effects: [
    'lorem ipsum',
    'lorem ipsum'
  ],
  image: '/img/cards/xx.png'
}

所以为了保存一个套牌,我想我可以选择:

  • deckname
  • 一系列卡片(想知道我是用{id,amount}保存还是计算它们。
  • 创建&更新

这不会对记忆太沉重吗?再一次,什么数据库系统适合这个?

2 个答案:

答案 0 :(得分:3)

您可以使用SQLite保存数据。这是以表格格式保存数据的正确方法,以便您可以使用SQL查询获取所需数据。当您在那时使用大量数据时,有时使用session或localStorage很难处理这些数据。所以我建议你使用SQLite。正如我在下面举例说明的那样,您将了解创建数据库的想法。

 <!DOCTYPE HTML>
<html>

   <head>

      <script type="text/javascript">

         var db = openDatabase('mydatabase', '1.0', 'My DB', 2 * 1024 * 1024);

         db.transaction(function (tx) {
            tx.executeSql('CREATE TABLE IF NOT EXISTS USER (id unique, name)');
            tx.executeSql('INSERT INTO USER (id, name) VALUES (1, "Ram")');
            tx.executeSql('INSERT INTO USER (id, name) VALUES (2, "Amay")');

         });

         db.transaction(function (tx) {
            tx.executeSql('SELECT * FROM USER WHERE id=?', [1], function (tx, results) {
               var len = results.rows.length, i;

               for (i = 0; i < len; i++){
                  var data = "<p><b>" + results.rows.item(i).name + "</b></p>";
                  document.querySelector('#custName').innerHTML +=  data;
               }
            }, null);
         });

      </script>

   </head>

   <body>
      <div id="custName">USER NAME</div>
   </body>

</html>

答案 1 :(得分:2)

最好的SQLite插件就是这个:

https://github.com/litehelpers/Cordova-sqlite-storage

或此插件的特殊版本,可在此处找到:

https://github.com/litehelpers/Cordova-sqlite-storage#other-versions

如果您的应用程序基于JSON,您应该看看PouchDB,它是一个NoSQL数据库,您可以在cordova s​​qlite插件之上使用:

https://pouchdb.com