为什么使用keyPath就存储不了?

来源:3-2 indexDB(2)

soso_crazy

2019-05-15 15:34:16

http://img.mukewang.com/climg/5cdbc0d80001bc1f18180925.jpg


<!DOCTYPE html>

<html>


<head>

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

<title>indexDB</title>

</head>


<body>

<script type="text/javascript">

var request = indexedDB.open('textDB', 5);

//如果有这个数据库 那就打开。没有,就创建

//版本号只能往上走 不可以降

console.log(request); //创建的数据库是一个对象IDBOpenDBRequest,有很多的方法


request.onsuccess = function() {

console.log('创建数据库成功');

};

// onsuccess 数据库创建或打开成功

request.onerror = function() {

console.log('创建数据库失败');

};

// 数据库打开失败(常见于版本号降低)


request.onupgradeneeded = function() { //onupgradeneeded版本升级触发的函数

console.log('版本号升级了');

var db = request.result; //对象IDBOpenDBRequest有result的属性

db.createObjectStore('test1', {

autoIncrement: true

}); //设置自增主键


var db1 = request.result;

db1.createObjectStore('test2', {

keyPath: 'id'

});

};


var json = {

"id": 1001,

"name": "leo",

"age": "18"

};


var json1 = [{

"id": 200,

"name": "Modoy",

"age": "15"

}, {

"id": 201,

"name": "Busy",

"age": "21"

}, {

"id": 202,

"name": "Blue",

"age": "23"

}];


setTimeout(function() {

var db = request.result;

var transaction = db.transaction('test1', 'readwrite'); //打开一个事务,使用test1的Object store,对数据库进行读写操作

//有多个数据库表可以用数组的形式 IDBOpenDBRequest.result.transaction(['test1','test2',...],'readwrite');

var store = transaction.objectStore('test1'); //获取test1的object store。

store.add(json);

}, 300);


setTimeout(function() {

var db1 = request.result;

var transaction = db1.transaction('test2', 'readwrite');

var store1 = transaction.objectStore('test2');

store1.add(json1);

}, 300);

</script>

</body>


</html>


写回答

1回答

soso_crazy

提问者

2019-05-15

找到问题所在了,对于数据内容有多个的时候,需要对数据遍历

0

0 学习 · 6815 问题

查看课程