目前,我正在使用localStorage来存储大量相同类型的对象,并且有些困惑。
一种思路是将所有对象存储在数组中。但是对于每个单独对象的读/写操作,都需要反序列化/序列化整个数组。
另一种方式是直接将每个对象及其关键字存储在localStorage中。这将使访问每个对象更加容易,但我担心将要存储的对象数量(数万个)。此外,获取所有对象将需要迭代整个localStorage!
请问您有哪些经验可以分享,哪种方式更好?此外,是否值得尝试更复杂的客户端数据库,如PouchDB?
目前,我正在使用localStorage来存储大量相同类型的对象,并且有些困惑。
一种思路是将所有对象存储在数组中。但是对于每个单独对象的读/写操作,都需要反序列化/序列化整个数组。
另一种方式是直接将每个对象及其关键字存储在localStorage中。这将使访问每个对象更加容易,但我担心将要存储的对象数量(数万个)。此外,获取所有对象将需要迭代整个localStorage!
请问您有哪些经验可以分享,哪种方式更好?此外,是否值得尝试更复杂的客户端数据库,如PouchDB?
\n
连接在一起,并将它们作为单个键存储。.split('\n')
,比使用JSON.parse
快了两个数量级。JSON.stringify
通常比localStorage.setItem
慢5-20倍);我个人没有使用过localStorage来管理这么多元素。
然而,我通常用来管理数据的模式是将完整的信息数据库加载到JavaScript对象中,在处理过程中在内存中进行管理,并在处理完成后再次保存到localStorage中。
当然,这种模式可能不是您的需求的好方法,这取决于您的项目规格。
如果您需要不断保存数据,数据访问可能会成为一个问题,因此可能使用某种类型的小型数据库访问是更好的选择。
如果您的数据量异常大,将其管理在内存中也可能成为一个问题,但是,根据数据模型,您可以构建有效的结构,使您能够在需要时仅加载和保存数据。