最好将数组存储在localstorage或许多变量中?

时间:2013-01-06 17:19:02

标签: javascript html5 local-storage

以我有数千名学生为例。

所以我有一个对象数组。

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);    

现在,每当我对一个学生做出改变时,我必须保存所有 学生到当地的储蓄。

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。感谢

2 个答案:

答案 0 :(得分:1)

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

如果您没有这么多数据层,真的需要一个真正的本地数据库,如IndexedDB,单个键和JSON字符串值可能适用于您的情况。

答案 1 :(得分:0)

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

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

  • 可以使用循环来处理它们
  • 不需要JSON
  • 永远可以成长