Javascript taffyDB不保存数据

Javascript taffyDB不保存数据,javascript,database,taffydb,Javascript,Database,Taffydb,我使用的是本地/脱机数据库 但不幸的是,在刷新浏览器选项卡后,它会丢失数据 例如: 我有这个初始变量 var clist = TAFFY(); 按钮上的onclick事件-它执行此语句 clist.insert({"123" , count:count , color:color , size:size}); alert(clist({PID : "123"}).count());//output 0 单击它并重新加载浏览器选项卡后,我执行此语句 clist.insert({"123" ,

我使用的是本地/脱机数据库

但不幸的是,在刷新浏览器选项卡后,它会丢失数据

例如: 我有这个初始变量

var clist = TAFFY();
按钮上的onclick事件-它执行此语句

clist.insert({"123" , count:count , color:color , size:size});
alert(clist({PID : "123"}).count());//output 0
单击它并重新加载浏览器选项卡后,我执行此语句

clist.insert({"123" , count:count , color:color , size:size});
alert(clist({PID : "123"}).count());//output 0
但是,前面的语句应该输出1

但不幸的是,在刷新浏览器选项卡后,它会丢失数据

嗯,是的,太妃糖就是这样工作的

但是,前面的语句应该输出1

不,不应该

太妃糖只在内存中。一旦脚本的上下文被删除,例如在重新加载页面时,它就消失了。如果你想坚持下去,你必须自己去做

最简单的方法是将整个数据集序列化为JSON,并将其放入
localstorage
,前提是它足够小,可以放在那里。

根据,要将数据持久化到localstorage,可以使用
db.store()

此单一函数将在内存中存储当前数据,并检索以前存储的数据。因此,如果在脚本开始时调用store,那么在窗口刷新时,将加载存储的数据


注意:但是,
db.store()
的保存例程被称为非阻塞过程。。。因此,如果您希望立即检索使用localStorage上的其他调用存储的数据,则很可能不存在。因此,store()的最佳做法是在窗口加载时调用它,然后在您希望保存现有数据时调用它。

非常感谢-您能告诉我其他解决方案吗?另一个将数据保存在本地/JSON文件上的数据库我不喜欢任何浏览器存储解决方案-因为用户可以清除缓存,而我会丢失缓存-我更喜欢处理JSON文件用户可以删除他们想要的任何内容,那么你到底想做什么?您不能只是将任意文件读/写到磁盘上,如果可以的话,它可以像浏览器缓存一样被用户轻松删除。您是说您宁愿将数据序列化为blob,并提示下载文件?此外,如果不需要文本兼容的序列化格式,可以考虑使用CBOR。