使用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 星