使用inedx索引获取数据,事务被打断?
<script type="text/javascript">
var myDB = indexedDB.open("myDB", 1);
myDB.onupgradeneeded = function (e) {
console.log(myDB);
var db = e.target.result;
var myStore = null;
console.log(db);
if (!db.objectStoreNames.contains("myStore")) {
myStore = db.createObjectStore("myStore", {
autoIncrement: true,
})
}
myStore.createIndex("myStore", "name", {
unique: true,
})
}
var data = [{
"name": "alex",
"age": "18"
}, {
"name": "manfrend",
age: "20"
}, {
"name": "leo",
"age": "21",
}]
setTimeout(function () {
var db = myDB.result;
var transaction = db.transaction("myStore", "readwrite");
var store = transaction.objectStore("myStore");
for (let i = 0; i < data.length; i++) {
store.put(data[i]);
}
var index = store.index("myStore");
index.get("alex").onerror = function (e) {
console.log(e);
}
index.get("alex").onsuccess = function (e) {
console.log(e);
}
}, 300)
</script>报错:

19
收起
正在回答
2回答
同学你好,每次刷新执行的时候都会插入一遍数据,但是代码中设置是唯一的,第二遍执行的时候插入不了

可以去掉试试

然后卸载数据库进行多次刷新,就可以看到大量数据被插入了

输出的e也是成功的。
祝学习愉快!
3.WebAPP开发与小程序
- 参与学习 人
- 提交作业 622 份
- 解答问题 6815 个
微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。
了解课程


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星