js操作indexedDB增删改查示例

if ('indexedDB' in window) {
// 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本
var req = indexedDB.open("TestDB", 1); req.onupgradeneeded = function(e) {
var db = req.result;
// var store = db.createObjectStore("student", {autoIncrement: true}); 使用自增键
// 创建student表
var store = db.createObjectStore("student", {keyPath: 'id'});
// 设置id为主键
store.createIndex('student_id_unqiue','id', {unique: true});
} req.onsuccess = function(event) {
var students = [
{id: 1, name: '小叶', age: '11'},
{id: 2, name: '小王', age: '12'},
{id: 3, name: '小张', age: '13'}
]; var db = event.target.result;
// var transaction = db.transaction('student', 'readwrite');
var transaction = db.transaction(['student'], 'readwrite');
transaction.onsuccess = function(event) {
console.log('[Transaction] 好了!');
}; var studentsStore = transaction.objectStore('student');
students.forEach(function(student){
var db_op_req = studentsStore.add(student);
db_op_req.onsuccess = function() {
console.log("存好了");
}
}); studentsStore.count().onsuccess = function(event) {
console.log('学生个数', event.target.result);
}; // 获取id为1的学生
studentsStore.get(1).onsuccess = function(event) {
console.log('id为1的学生', event.target.result);
}; // 更新id为1的学生
students[0].name = '小小叶';
studentsStore.put(students[0]).onsuccess = function(event) {
console.log('更新id为1的学生姓名', event.target.result);
}; // 删除id为2的学生
studentsStore.delete(2).onsuccess = function(event) {
console.log('id为2的学生已经删除');
};
} req.onerror = function() {
console.log("数据库出错");
}
}else{
console.log('你的浏览器不支持IndexedDB');
}

最新文章

  1. 不定义JQuery插件,不要说会JQuery 分类: JavaScript 2014-11-24 14:18 155人阅读 评论(0) 收藏
  2. 深入理解JAVA I/O系列六:Linux中的IO模型
  3. 意外的节点类型 Element。只能在简单内容或空内容上调用 ReadElementString 方法
  4. php学习笔记6--php中的文件包含 include,require,include_once,require_once
  5. 验证码生成-->漂亮啊
  6. Qt浅谈之三十九圆形进度条(已经有50篇了)
  7. Web学习资源及手册查询整理
  8. DotNet命名规范参考(转)
  9. php笔记(六)PHP类与对象之对象接口
  10. List集合和JSON互转工具类
  11. SVD分解 解齐次线性方程组
  12. opencontrail-vrouter命令
  13. c3p0配置文件(c3p0.properties.xml)解读
  14. weblogic domain creation
  15. [Node.js与数据库]node-mysql 模块介绍
  16. robotium之无name、ID仅有desc定位
  17. 【Docker】基本命令
  18. Linux FreeTDS的安装与配置
  19. Asp.net MVC3 CSS 模板
  20. c++指向指针的指针与 c++指针作为函数参数传递问题

热门文章

  1. C# 语言版本
  2. 【转】Chrome保存mht网页文件的方法 – 无需任何插件,完美!
  3. Elasticsearch: 权威指南(官方教程)
  4. 纯css实现Magicline Navigation(下划线动画导航菜单)
  5. oracle的序列号(sequence)
  6. [置顶] Android 适配真要命?
  7. 如何用 Java 实现 Web 应用中的定时任务
  8. Linux paste 命令
  9. python库之_thread
  10. Python之json文件