[英]localStorage: Storing data individually VS one big String?
我想在 localStorage 中保留多个记录。 存储和检索几个小数据,还是一个大数据更有效?
例如。 这个:
localStorage.setItem('id1', tally1);
localStorage.setItem('id2', tally2);
for(var i=0; i<tallyIds.length; i++){
this.tallies.push(tallyIds[i], localStorage.getItem(tallyIds[i]));
}
或这个:
localStorage.setItem('tallies', '[{"id1": tally1}, {"id2": tally2}"]');
this.tallies = JSON.parse(localStorage.getItem('tallies'));
我知道有些设备会定期从 localStorage 中自动清除一些数据。 因此,在发生这种情况时可能只有一些会丢失的情况下,单独存储每个可能是有利的 - 但如果全部存储在一个大字符串中,那么如果/当设备决定清除它时,所有内容都会丢失。
但是,遍历整个列表(只有几百个项目)会变慢吗?
几乎可以肯定,您应该更喜欢将标签存储为单个键下的数组。 如果 localStorage 被清除,则独立存储标签
一种。 不太可能保存它们中的任何一个(例如,cmd localStorage.clear() 将清除所有内容) b. 可能会导致混乱的情况,即您不确定所有数据是否真的完好无损或仅丢失了部分数据。
从好的方面来说,将计数存储为数组意味着您可以非常轻松地在其他操作中过滤、映射、排序和反转它们。
对于您的特定情况,将计数存储在一个 localStorage 键和值(作为一个大字符串)中并使用 JSON 解析来重建您的对象,添加到它,然后再次对其进行字符串化可能会更容易。 这比通过每个标签将其拆分为不同的键更容易。
如果您没有太多的数据层,而您确实需要像 IndexedDB 这样的真正的本地数据库,那么在这种情况下,单个键和一个 JSON 字符串值可能就可以了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.