使用IndexedDB当我的应用程序首次运行时,我用一些数据填充它,我希望确保在创建数据库和表时,它们尚不存在。

我可以查询表的长度,以查看它是否包含javascript中的数据?

有帮助吗?

解决方案

最好的方法是尝试打开ObjectStore试用捕获块。它也是同步的。在错误的情况下,您可以创建存储:

var store;
  try {
    store = request.transaction.objectStore('yourStore');
  }
  catch(e) {
    store = db.createObjectStore('yourStore');
}
.

其他提示

您可以使用 objectstore.count()功能,但我建议存储某种元数据,这些元数据会说初始化您的本地数据库。否则,您可以在数据创建中间中重新加载,并且永远不会与远程数据完全同步的数据。

如果使用指定名称的数据库不存在其打开它,则会创建数据库

eg.var request = indexedDB.open("DataTbl");

因此,如果您的数据库已经存在,它将只打开它,并检查表中已存在的内容是否存在,则可以制作XYZ对象库并将某些键/值标志对存储在其中,因此插入是成功的当页面重新加载时,请稍后检查。

还可以尝试计算@toske

指定的函数

ref:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top