您的位置:首页> HTML5教程> indexedDB
文章导航

IDBTransaction.objectStoreNames

2019-9-21 10:28| 作者: admin| 查看: 150| 评论: 0|来自: 蚂蚁部落

对对象仓库的增删改查或者其他结构性的操作需要结合事务。

此属性可以返回与当前事务结合关联的对象仓库名称。

返回值是一个DOMStringList类型对象。

通过IDBDatabase.transaction()可以将事务与对象仓库关联起来。

语法结构:

[JavaScript] 纯文本查看 复制代码
let objectStoreNamesList = transactionObj.objectStoreNames;

属性非常的简单,下面通过代码实例进行一下演示:

[HTML] 纯文本查看 复制代码运行代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<script>
let students=[
  { 
    id:1001, 
    name:"张三", 
    age:21,
    sex:"男"
  },{ 
    id:1002, 
    name:"李四", 
    age:20,
    sex:"女"
  },{ 
    id:1003, 
    name:"王五", 
    age:19,
    sex:"女"
  }
];

let request = window.indexedDB.open("antzone", 1);
request.onupgradeneeded = (ev) => {
  let db = ev.target.result;
  if (!db.objectStoreNames.contains('students')) {
    let objectStore = db.createObjectStore('students',{autoIncrement:true});
    objectStore.createIndex("xingbie","sex",{ unique: false });
  }
}

request.onsuccess = (ev) => {
  let db = ev.target.result;
  let transaction = db.transaction(['students'], 'readwrite');
  // 打印出关联的对象仓库
  console.log(transaction.objectStoreNames);
  let objectStore = transaction.objectStore('students');
  for(let i=0;i<students.length;i++){
    objectStore.add(students[i]);
  }
}
</script>
</head>
<body>
  <p>打印出关联的对象仓库</p>
</body>
</html>

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201909/21/102942wtog1jx9hbgjgr4u.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

代码简单分析如下:

(1).db.transaction(['students'], 'readwrite')实现事务与对象仓库的关联。

(2).事务可以关联一个,也可以关联多个。

(3).transaction.objectStoreNames返回与当前事务关联的对象仓库集合。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部