代码之家  ›  专栏  ›  技术社区  ›  Josiah Ruddell

HTML5本地存储设计问题

  •  2
  • Josiah Ruddell  · 技术社区  · 14 年前

    在HTML5的本地存储中存储对象数据的最佳方法是什么?我在键值存储方面做得不多。

    在我的研究中,我看到了一些不同的方法。

    示例数据:

    var commands = [
      {invokes: 'Window', type: 'file', data: '/data/1'},
      {invokes: 'Action', type: 'icon', data: '/data/2'},
      {invokes: 'Window', type: 'file', data: '/data/3'}
    ];
    

    方法1:存储表示每个数据项的键

    // for(...) {
    localStorage["command[" + i + "].invokes"] = command[i].invokes
    localStorage["command[" + i + "].type"] = command[i].type
    localStorage["command[" + i + "].data"] = command[i].data
    //}
    

    方法2:键是实体名,存储JSON

    localStorage["commands"] = JSON.stringify(commands);
    

    第二种方法需要json.parse()。

    利弊?

    3 回复  |  直到 13 年前
        1
  •  2
  •   Josiah Ruddell    14 年前

    根据记录,我采用了方法2。我的键类似于一个表名,它的值是一个JSON字符串化的记录数组。检索表时,必须调用json.parse()。

        2
  •  0
  •   Madhuka    13 年前

    本地存储的技术包括: http://madhukaudantha.blogspot.com/2011/02/client-side-storages-with-html-5.html

    方法2,好的…… 还有很多方法

        3
  •  0
  •   Matt    13 年前

    当然,你的方法工作得很好,但是它确实让你有点拘泥于你所选择的继续前进的惯例。我建议您考虑将本地存储访问包装在一个类中,这样您的约定作为一个真正的约定与类隔离开来。

    否则,如果您选择更改方法,那么实现代码将分散在您的代码库中。