在我的应用程序第一次运行时使用 IndexedDB 我用一些数据填充它,我想确保在创建数据库和表时它们不存在。
我可以查询表的长度以查看它是否包含 JavaScript 中的数据吗?
在我的应用程序第一次运行时使用 IndexedDB 我用一些数据填充它,我想确保在创建数据库和表时它们不存在。
我可以查询表的长度以查看它是否包含 JavaScript 中的数据吗?
最好的方法是尝试在 try catch 块中打开 objectStore。它也是同步的。如果出现错误,您可以创建商店,例如:
var store;
try {
store = request.transaction.objectStore('yourStore');
}
catch(e) {
store = db.createObjectStore('yourStore');
}
您可以使用objectStore.count()函数,但我建议存储某种表示您的本地数据库已初始化的元数据。否则,您可以在数据创建过程中重新加载页面,并且永远不会让您的数据与远程数据完全同步。
如果具有指定名称的数据库不存在,则创建数据库,否则将打开它
例如。var request = indexedDB.open("DataTbl");
因此,如果您的数据库已经存在,它只会打开它并检查表中的内容是否已经存在,然后您可以创建一个 xyz 对象存储并在其中存储一些键/值标志对,表示插入成功并稍后检查每次重新加载页面时。
您也可以尝试计算@toske 指定的函数
参考: