Javascript 将本地存储重构为数据库
我已经建立了一个应用程序,将记录保存在本地存储中 我最近才意识到,通过设计,我通过阻塞DOM阻塞了CPU,因为我正在使用ng repeat从单个键读取大量记录 我的想法是迁移到PockDB,但我认为我缺少一些概念 现在,我的数据结构如下所示:Javascript 将本地存储重构为数据库,javascript,angularjs,couchdb,local-storage,pouchdb,Javascript,Angularjs,Couchdb,Local Storage,Pouchdb,我已经建立了一个应用程序,将记录保存在本地存储中 我最近才意识到,通过设计,我通过阻塞DOM阻塞了CPU,因为我正在使用ng repeat从单个键读取大量记录 我的想法是迁移到PockDB,但我认为我缺少一些概念 现在,我的数据结构如下所示: { _id: 'car_<id>', data: ...} { _id: 'driver_<id>', data: ...} { _id: 'record_<id>', data: ...} 键(cars)-值(ob
{ _id: 'car_<id>', data: ...}
{ _id: 'driver_<id>', data: ...}
{ _id: 'record_<id>', data: ...}
- 键(cars)-值(objectCar1-objectCar2-objectCar3…)
- 键(驱动程序)-值(objectDriver1-objectDriver2-objectDriver3…)
- 键(记录)-值(objectRecord1-objectRecord2-objectRecord3…到Record70现在,开始出现问题
还是我遗漏了什么?你遗漏了一些东西 首先,PockDB的主要参与技巧是使用couchDB进行复制。如果您不使用它,那么最好使用其他web数据库包装器(例如)
在查询数据方面,您可以遍历整个数据库。但是一种更有效、更简单的方法是使用或如果您已经在使用localstorage,您可以看看PockDB不是一个存储数据的大包,但是为了高效地存储数据,您必须稍微改变一下心态 长话短说,您将希望插入如下所示的文档:
{ _id: 'car_<id>', data: ...}
{ _id: 'driver_<id>', data: ...}
{ _id: 'record_<id>', data: ...}
{{u id:'汽车',数据:…}
{u id:'驱动程序',数据:…}
{u id:'记录',数据:…}
请注意,每个文档的\u id
都以其类型为前缀
然后,为了高效地查询数据,例如查找所有汽车,您可以查询db.allDocs({startkey:'car\uUf',endkey:'car\uUfff',include.\uDocs:true})
或者,如果您已经厌倦了手工编写这些类型的查询,那么我们也会做同样的事情,但会使用更好的API。现在它是一款离线应用程序,但将来可能会有兴趣添加复制选项……嗨,尼克!我看过LocalFower,但我认为这是进入“严肃”数据库挖掘的绝佳机会!无论如何,谢谢!:)