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