0

我正在使用 localStorage 保存会话客户端以节省我的数据库中的服务器端空间。为了做到这一点,我使用这样的对象:

users = {
  478vh9k52k: {
    name: 'john',
    messages: []
  },
  42r66s58rs: {
    name: 'jack',
    messages: []
  }
};

然后我使用users[id].messages.push(msgObj)在正确的用户 ID 内推送新消息。最后我使用JSON.stringify然后保存结果字符串。

这样做的问题是字符串会慢慢增长,从而填补限制。消息数组的长度不是太大问题,因为我截断了它,但不再需要旧用户的存在。

问题很简单:如何删除“用户”对象中包含的旧用户?我正在考虑在对象内添加时间戳作为键,然后访问随机用户以在每次保存时检查它们。

还是有更好的方法来做到这一点?

4

1 回答 1

0

为什么随机访问它们?你可以在几天内分割你的存储空间,用

localStorage["chatLogs"] = {
  "13........0" : {
    bob: {},
    alice: {},
    christoffelson: {}
  }
  "13....86400" : {
    bob: {},
    alice: {},
    christoffelson: {}
  }
}

然后通过它的键运行你的对象。如果它们超过一天,请删除它们。或者,如果您要进行大量查询/过滤,您可以查看使用 indexdb 而不是 localStorage。

于 2013-03-16T12:52:23.653 回答