2

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

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

4

3 回答 3

4

最好的方法是尝试在 try catch 块中打开 objectStore。它也是同步的。如果出现错误,您可以创建商店,例如:

var store;
  try {
    store = request.transaction.objectStore('yourStore');
  }
  catch(e) {
    store = db.createObjectStore('yourStore');
}
于 2019-10-13T14:31:40.240 回答
1

您可以使用objectStore.count()函数,但我建议存储某种表示您的本地数据库已初始化的元数据。否则,您可以在数据创建过程中重新加载页面,并且永远不会让您的数据与远程数据完全同步。

于 2012-05-31T13:28:53.203 回答
-1

如果具有指定名称的数据库不存在,则创建数据库,否则将打开它

例如。var request = indexedDB.open("DataTbl");

因此,如果您的数据库已经存在,它只会打开它并检查表中的内容是否已经存在,然后您可以创建一个 xyz 对象存储并在其中存储一些键/值标志对,表示插入成功并稍后检查每次重新加载页面时。

您也可以尝试计算@toske 指定的函数

参考:

于 2013-12-06T04:56:49.810 回答