0

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

我是如何设置的

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

检查限制

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

现在它不会跳过第四条记录,但会显示已删除的数据并且不会显示最后添加的数据。例如

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

由于我特别将其限制为五 (5) the,因此应从列表中删除并excited添加。它做得很好但是当我关闭应用程序并尝试检索它返回的数据时

the
avengers
are
coming
now

它没有显示excited我有道理吗?

4

1 回答 1

0

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

于 2012-04-25T08:24:46.097 回答