7

举个例子,我有成千上万的学生。

所以我会有一个对象数组。

students = [

{ "name":"mickey", "id","1" },
{ "name":"donald", "id","2" }
{ "name":"goofy", "id","3" }
...

];

我目前将其保存到本地存储中的方式是:

localStorage.setItem('students', JSON.stringify(students));

我从本地存储中检索它的方式是:

var data = localStorage.getItem('students');
students = JSON.parse(data);    

现在,每当我对单个学生进行更改时,我必须将所有学生保存到 localStorage。

students[0].name = "newname";
localStorage.setItem('students', JSON.stringify(students));

我想知道它是否会更好,而不是保留一个数组,也许有数千个变量

localStorage.setItem('student1', JSON.stringify(students[0]));
localStorage.setItem('student2', JSON.stringify(students[1]));
localStorage.setItem('student3', JSON.stringify(students[2]));
...

这样一个学生可以单独得救而不用保存其余部分?

我可能会有很多“学生”……成千上万。那么哪种方式更好,数组还是localstorage中的许多变量?

注意:我知道我可能应该使用 IndexedDB,但我现在需要使用 LocalStorage。谢谢

4

2 回答 2

1

对于您的特定情况,将学生存储在一个 localStorage 键中并使用 JSON 解析来重构您的对象,添加到它,然后再次对其进行字符串化,这可能比每个学生将其拆分为不同的键更容易。

如果您没有太多的数据层,以至于您确实需要像 IndexedDB 这样的真正本地数据库,那么单个键和 JSON 字符串值可能适合您的情况。

于 2013-01-06T17:34:16.100 回答
0

本地存储的大小有限制,旧版浏览器不支持。

出于以下几个原因,最好存储在数组中:

  • 可以使用循环来处理它们
  • 不需要 JSON
  • 总是可以增长的
于 2013-01-06T17:22:04.337 回答