2012-04-25 73 views
0

嗨,我需要限制数据被添加到我的本地存储。如果用户添加第六个项目,第一个项目应该删除,我只需要存储5个项目。我完成了那部分,但是当它检索它时,它检索删除的数据并跳过第四项。有任何想法吗?如何限制数据存储到本地存储并检索它?

我如何设置的东西

var _i = 0 //global; 
storage.setItem(_i, URL); 

checkLimit

if(storage.length >= 5) 
{ 
    var _a = storage.getItem(0); 
    storage.removeItem(_a); 
    _a += 1; 
} 

当检索它

for(var _x = 1; _x <= storage.length - 1; _x++) 
{ 
    var _url = storage.getItem(_x); 
} 

更新

哦,我忘了提,当我使用索引键获得物品它不显示删除的数据,但不知何故跳过第四个。

更新2

现在不会跳过第四个记录,但它显示了删除的数据,并且不显示最后添加的数据。 e.g

the //first 
avengers //second 
are //third 
coming //fourth 
now //fifth 
excited //sixth 

由于我具体地说,它限制在五(5)the应该从列表中删除,并excited应添加。它做得很好,但是当我关闭应用程序,并尝试恢复数据,它返回

the 
avengers 
are 
coming 
now 

,并没有显示excited难道我说的吗?

回答

0

您不能依赖Web存储密钥的顺序。检查这个问题:HTML5 localStorage key order
如果你想这样做,只需使用一个数组对象,它将存储在localStorage中。

+0

没有变化。我仍然有这个问题。请注意,如果长度达到或超过5,我将移除项目。 – jongbanaag 2012-04-25 08:48:24

+0

我们能否看到您的代码? – 2012-04-25 09:11:46

+0

看到这个http://jsfiddle.net/vJkBQ/4/的答案http://stackoverflow.com/questions/18606256/push-not-working-in-javascript?noredirect=1#comment27386544_18606256。它可以帮助你使用'getItemIndexById'函数。 – Nothing 2013-12-07 03:03:58

相关问题