【问题标题】:HTML5 localStorage design questionsHTML5 localStorage 设计问题
【发布时间】:2011-04-19 12:13:01
【问题描述】:

在 HTML5 的 localStorage 中存储对象数据的最佳方式是什么?我在键值存储方面工作不多。

在我的研究中,我看到了几种不同的方法。

示例数据:

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

方法一:存储代表每个数据项的键

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

方法二:keys为实体名,存储json

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

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

优点/缺点?

【问题讨论】:

    标签: database json html local-storage key-value


    【解决方案1】:

    对于我使用方法 2 的记录。我的键类似于表名,值是 json 字符串化的记录数组。检索表时,您必须调用 JSON.parse()。

    【讨论】:

      【解决方案2】:

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

      方法 2,好的.. 还有更多方法

      【讨论】:

        【解决方案3】:

        当然,您的方法工作得很好,但是它确实让您有点坚持您选择的前进惯例。我建议您考虑将 localStorage 访问权限包装在一个类中,以便您的约定作为真正的约定与一个类隔离。

        否则,如果您选择更改方法,您的代码库中就会散布着实现代码。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-09
          • 2012-02-23
          相关资源
          最近更新 更多