indexeddb - indexedDb 无法创建对象存储
问题描述
我创建了一个示例应用程序来创建 indexeddb,该应用程序一直工作到昨天,但不确定发生了什么问题,商店没有被创建。有人可以帮忙吗。这是相同的小提琴。我还创建了一种从商店中删除数据的方法,该方法也不起作用
https://jsfiddle.net/ojm10u4k/
var dbName = "bmiDb1";
var database;
var lookupType = [];
var dbVersion = 0;
var storeData = [{
LookupTypeId: 2,
Name: 'Collision',
Description: null
}, {
LookupTypeId: 3,
Name: 'Grounding',
Description: null
}]
function createObjectStore(indexDbName, storeName, keyName) {
var objectStore;
var version = dbVersion + 1;
dbVersion = version;
var request = indexedDB.open(indexDbName, dbVersion);
request.onupgradeneeded = function(event) {
var database = event.target.result;
if (!database.objectStoreNames.contains(storeName)) {
objectStore = database.createObjectStore(storeName, {
keyPath: keyName
});
try {
objectStore.transaction.oncomplete = function(event) {
// Store values in the newly created objectStore.
var objectValueStore = database.transaction(storeName, "readwrite").objectStore(storeName);
storeData.forEach(function(data) {
objectValueStore.add(data);
});
database.close();
}
objectStore.transaction.commit();
} catch (err) {}
} else {}
};
}
function createIndexDb(name) {
return new Promise((resolve, reject) => {
let request = indexedDB.open(name);
request.onsuccess = (event) => resolve(event.target.result);
request.onerror = (event) => reject(event.target.error);
});
}
$(document).ready(function() {
createIndexDb(dbName).then(db => {
dbVersion = db.version;
database = db;
}).catch(console.error);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
解决方案
这是关闭连接后的工作方式
createIndexDb(dbName).then(
db => {
dbVersion = db.version;
database = db;
db.close();
}).catch(console.error);
推荐阅读
- html - Flexbox 等高列
- android-studio - 构建失败并出现异常。安卓工作室 ubunto
- shell - 如何在 Shell Script 中计算当前、上一个和下一个季度?
- javascript - 重置通知状态时,Material UI Autocomplete 组件不会清除输入
- sql - 有 AdventureWorks 经验的人能帮助我解决我似乎无法解决的问题吗?
- arrays - ForEach 值只是数组中的第一项
- javascript - 如何分离 Angular html 和脚本代码
- sql - 带有内部选择子句的按顺序分组的sql查询
- bash - 自动完成 bash 与 zsh
- kotlin - Kotlin 中的并发哈希映射