3

我正在使用TaffyDB来拥有一个本地/离线数据库

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

示例:我有这个初始变量

var clist = TAFFY();

按钮上的 onclick 事件 - 它执行此语句

clist.insert({"123" , count:count , color:color , size:size});

单击它并重新加载浏览器选项卡后,我执行此语句

alert(clist({PID : "123"}).count());//output 0

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

4

2 回答 2

3

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

嗯,是的,这就是 TaffyDB 的工作原理。

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

不,不应该。

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

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

于 2018-04-26T13:33:49.753 回答
2

根据taffydb 文档,要将数据持久保存到 localStorage,您可以使用db.store()

let db = TAFFY()
db.store('mydb')

这个单一的函数既可以将当前数据存储在内存中,也可以检索以前存储的数据。因此,如果您在脚本开头调用 store,则在窗口刷新时,将加载存储的数据。

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

于 2018-10-17T00:08:09.987 回答