2013-02-12 80 views
0

我有一个JS应用程序保存到localStorage。没什么大不了。但是,存储的是相当大的JSON。 10MB快速消失。我想要做的是,如果存储空间已满,请删除最旧的记录。从localStorage删除最旧的记录

有没有办法在localStorage中可靠地找到最旧的记录?

+0

不是真的,localStorage没有任何内置的功能来处理它。你总是可以自己在localStorage之上构建一个图层;一个可以扩展本地存储的层,可以跟踪每个关键点何时更改,以便您可以知道哪个是最旧的记录。 – 2013-02-13 11:17:34

+0

伊万,你应该把它变成一个答案,所以我可以标记它是正确的。 :)它看起来像一个严格的键/值分贝的标准做法是什么在这里最好的工作。 – 2013-02-14 17:47:13

+0

当然,把它作为下面的答案。顺便说一句。如果你最终扩展/包装localStorage来支持这一点 - 开源它!我想会有其他人对此感兴趣。 – 2013-02-14 18:24:05

回答

1

不是真的,localStorage没有任何内置的功能来处理它。你总是可以自己在localStorage之上构建一个图层;一个可以扩展localStorage的层,以跟踪每个关键点何时更改,以便您可以知道哪个是最旧的记录。

+0

刚刚完成这个小图书馆!工作得很好! https://github.com/benjaminallison/SuperLocal – 2013-04-08 23:46:58

1

你可以这样做: localStorage.removeItem(localStorage.key(0));

您在localStorage.key整数指定,以获得索引键的名称。

+0

我敢肯定,这与提取/删除*最旧*记录无关。 – 2013-02-13 11:15:29

+0

Woops!我刚刚编辑过!我以为他说过要删除最后一张唱片。我运行了代码,我很确定它现在删除了旧记录。 – Ricardus 2013-02-13 20:43:34