2013-03-16 91 views
0

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

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

然后我用users[id].messages.push(msgObj)推右用户ID内的新邮件。最后我使用JSON.stringify然后保存结果字符串。

问题在于,字符串会慢慢增长,从而填满了限制。消息数组的长度并不是太多问题,因为我截断了它,但旧用户的存在不再是必需的。

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

或者是否有更好的方法来做到这一点?

回答

0

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

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

然后通过其密钥运行您的对象。如果他们比一天更旧,请删除它们。或者,如果您要进行大量查询/过滤,则可以查看使用indexdb而不是localStorage。