mcck

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

IndexedDB是HTML5-WebStorage的重要一环,是一种轻量级NOSQL数据库。虽然这个不是很常用,但是作为学习也是可以了解一下。

  1 <!DOCTYPE html>
  2 <html>
  3     <head>
  4         <meta charset="UTF-8">
  5         <title>测试indexedDB</title>
  6         <script type="text/javascript" src="js/jquery.min.js" ></script>
  7             <script type="text/javascript">
  8                 //调整浏览器兼容性
  9                 if(!window.indexedDB){
 10                     window.indexedDB = window.mozIndexedDB || webkitIndexedDB;
 11                 }
 12                 //打开或创建数据库这里可以再设置一个属性,版本号,默认为1
 13                 var request = indexedDB.open('testDB1');
 14                 var db;
 15                 //初始化数据库
 16                 request.onupgradeneeded=function(event){
 17                     db = event.target.result;
 18                     //创建数据库,第一个值是名字,相当于sql中的表名,第二个属性是设置主键
 19                     var store = db.createObjectStore("MyDB1",{keyPath:"title"});
 20                     console.log("创建数据库成功");
 21                 };
 22                 //如果已存在,直接使用
 23                 request.onsuccess=function(e){
 24                     db = e.target.result;
 25                 }
 26                 $(function(){
 27                     //添加数据
 28                     $("#add").click(function(){
 29                         //定义要添加的数据
 30                         //title是主键,不可重复(title要和创建数据库是设置的一样),这里相当于给数据库添加字段
 31                         var obj = {"title":$("#test").val(),
 32                                     "name":"21",
 33                                     "ema":"qqqq"};
 34                         //readwrite是读写模式
 35                         db.transaction(["MyDB1"],"readwrite").objectStore("MyDB1").add(obj).onsuccess = function(e){
 36                             console.log("添加成功");
 37                         };
 38                     });
 39                     
 40                     //删除数据
 41                     $("#del").click(function(){
 42                         //.delete("qwertyuiop")函数中设置要删除的key值(主键),如果不存在,不会报错
 43                         db.transaction(["MyDB1"], "readwrite").objectStore("MyDB1").delete("1").onsuccess=function(e){
 44                             console.log("删除成功");
 45                         }
 46                     });
 47                     
 48                     //查询数据,查询所有
 49                     $("#sel").click(function(){
 50     //                    db.transaction("MyDB1").objectStore("MyDB1").openCursor().onsuccess = function(event) {
 51     //                        var getString = "";
 52     //                         var cursor = event.target.result;
 53     //                        if (cursor) {
 54     //                            getString += "Name for SSN " + cursor.key + " is " + cursor.value.name;
 55     //                            console.log("Name for SSN " + cursor.key + " is " + cursor.value.name);
 56     //                            console.log(cursor.key);
 57     //                            cursor.continue();
 58     //                            console.log(cursor);
 59     //                        }
 60     //                    }      
 61                         
 62                         
 63                         db.transaction("MyDB1").objectStore("MyDB1").openCursor().onsuccess=function(e){
 64                             var cursor = e.target.result;
 65                             if(cursor){
 66                                 console.log("KEY: "+cursor.key);
 67                                 console.log("value: "+cursor.value.name+","+cursor.value.ema);
 68                                 //不写cursor.continue();就只查询最后一条
 69                                 cursor.continue();
 70                             }
 71                         }
 72 
 73                     });
 74                     
 75                     //修改数据
 76                     //修改数据以title为条件,如果title指定的值存在,则是修改,如果不存在,则是添加一条数据
 77                     $("#upda").click(function(){
 78                         var obj = {"title":"456","name":"test1funck又"};
 79                         console.log(obj);
 80                         db.transaction(["MyDB1"],"readwrite").objectStore("MyDB1").put(obj).onsuccess=function(e){
 81                             console.log("修改成功");
 82                         }
 83                     });
 84                     
 85                     //按key查询
 86                     $("#indexse").click(function(){
 87                         //.get(key),student  是value
 88                         var request=db.transaction(["MyDB1"],'readwrite').objectStore(["MyDB1"]).get("funck"); 
 89                         request.onsuccess=function(e){ 
 90                             var student=e.target.result; 
 91                             console.log(student.name); 
 92                         };
 93                     });
 94                     
 95                     //删除数据库.deleteDatabase("数据库名");
 96                     $("#deleteDB").click(function(){
 97                         window.indexedDB.deleteDatabase("testDB1");
 98                     });
 99                     
100                 });
101             </script>
102     </head>
103     <body>
104         dsadjsakhdksa
105         <div>
106             <input type="button" id="add" value="add" />
107             <input type="button" id="sel" value="select" />
108             <input type="button" id="del" value="delete" />
109             <input type="button" id="upda" value="update" />
110             <input type="button" id="indexse" value="action" />
111             <input type="button" id="deleteDB" value="deleteDB" />
112             <input type="text" id="test" />
113         </div>
114     </body>
115 </html>

 

posted on 2016-03-22 12:02  mcck  阅读(1171)  评论(0编辑  收藏  举报