老师报错了

老师报错了

<!DOCTYPE html>
<html manifest="" style="font-size: 16px">
<head>
<title>练习</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
<style type="text/css"></style>
</head>
<body>

<!-- JS -->
<script type="text/javascript">
var DB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB; //兼容性

var name = "数据练习", b = 9; //库名 版本号

var a = DB.open(name,b); //创建数据库 名为 数据练习

a.onsuccess = function(){
console.log("数据成功");
}

a.onerror = function() {
console.warn("数据失败")
}

a.onupgradeneeded = function() {
console.log("数据升级成功");
// 获取IDBDatabase 值
DB = a.result;
// 判断 是否有类似表
if(!DB.objectStoreNames.contains("数据表")) {
// 创建表
DB.createObjectStore("数据表", {autoIncrement: true})
}

}



var data = [
{
"id" : "001",
"账号" : "1234",
"密码" : "000",
"性别" : "男"
},
{
"id" : "001",
"账号" : "4321",
"密码" : "111",
"性别" : "女"
},
{
"id" : "001",
"账号" : "1243",
"密码" : "222",
"性别" : "未知"
}
];

function addData() {
var transaction = DB.transaction("数据表", "r"),
store = transaction.ovjectStore("数据表")
data.map(function(o){
store.add(o);
})
}
addData()



</script>
</body>
</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

1、单词错误:

http://img1.sycdn.imooc.com//climg/5c04ff3800011df909340216.jpg

应该是objectStore。

2、不应该在代码中调用addData()方法,因为onupgradeneeded和onsuccess方法是异步执行的,需要等待一定的事件,所以会先执行下面的代码,下面addData调用的时候,db数据库还没有成功,所以会报错。建议在控制台中调用:

http://img1.sycdn.imooc.com//climg/5c04ffcb0001755402310129.jpg

http://img1.sycdn.imooc.com//climg/5c04ffd40001723d18750377.jpg

自己可以动手测试下。

提问者 慕神6715844 2018-12-03 16:13:26
<!DOCTYPE html>
<html manifest="" style="font-size: 16px">
<head>
<title>练习</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
<style type="text/css"></style>
</head>
<body>

<!-- JS -->
<script type="text/javascript">
var DB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB; //兼容性

var name = "数据练习", b = 9; //库名 版本号

var a = DB.open(name,b); //创建数据库 名为 数据练习

a.onsuccess = function(){
console.log("数据成功");
}

a.onerror = function() {
console.warn("数据失败")
}

a.onupgradeneeded = function() {
console.log("数据升级成功");
// 获取IDBDatabase 值
DB = a.result;
// 判断 是否有类似表
if(!DB.objectStoreNames.contains("数据表")) {
// 创建表
DB.createObjectStore("数据表", {autoIncrement: true})
}

}



var data = [
{
"id" : "001",
"账号" : "1234",
"密码" : "000",
"性别" : "男"
},
{
"id" : "001",
"账号" : "4321",
"密码" : "111",
"性别" : "女"
},
{
"id" : "001",
"账号" : "1243",
"密码" : "222",
"性别" : "未知"
}
];

function addData() {
var transaction = DB.transaction("数据表", "readwrite"),
store = transaction.ovjectStore("数据表")
data.map(function(o){
store.add(o);
})
}
addData()



</script>
</body>
</html>


  • 提问者 慕神6715844 #1
    也报错了、、、
    2018-12-03 16:13:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师