<script type="text/javascript"> //打開數據庫 function openDB(name,version){ var version = version || 1; var request = window.indexedDB.open(name,version); request.onerror = function(e){ console.log(e.currentTarget.error.message); }; request.onsuccess = function(e){ myDB.db = e.target.result; }; request.onupgradeneeded = function(e){ var db=e.target.result; if(!db.objectStoreNames.contains('students')){ //db.createObjectStore('students',{keyPath:"id"});//以id爲鍵存儲數據 相似關聯數組 //db.createObjectStore('students',{autoIncrement: true});//以自增數值爲鍵 相似索引數組 //建立索引 var store=db.createObjectStore('students',{keyPath: 'id'}); store.createIndex('nameIndex','name',{unique:true}); store.createIndex('ageIndex','age',{unique:false}); } console.log('DB version changed to ' + version); }; } //插入數據 function addData(db,storeName){ var transaction=db.transaction(storeName,'readwrite'); var store=transaction.objectStore(storeName); for(var i=0;i<students.length;i++){ store.add(students[i]); } } //查找數據 function getDataByKey(db,storeName,value){ var transaction=db.transaction(storeName,'readwrite'); var store=transaction.objectStore(storeName); var request=store.get(value); request.onsuccess=function(e){ var student=e.target.result; console.log(student.name); }; } //利用索引查找數據 function getDataByIndex(db,storeName){ var transaction=db.transaction(storeName); var store=transaction.objectStore(storeName); var index = store.index("nameIndex"); index.get('Byron').onsuccess=function(e){ var student=e.target.result; console.log(student.id); } } //更新數據 function updateDataByKey(db,storeName,value){ var transaction=db.transaction(storeName,'readwrite'); var store=transaction.objectStore(storeName); var request=store.get(value); request.onsuccess=function(e){ var student=e.target.result; student.age=35; store.put(student); }; } //刪除數據 function deleteDataByKey(db,storeName,value){ var transaction=db.transaction(storeName,'readwrite'); var store=transaction.objectStore(storeName); store.delete(value); } //清空object store數據(student) function clearObjectStore(db,storeName){ var transaction=db.transaction(storeName,'readwrite'); var store=transaction.objectStore(storeName); store.clear(); } //關閉數據庫 function closeDB(db){ db.close(); } //刪除數據庫 function deleteDB(name){ indexedDB.deleteDatabase(name); } //配置數據庫 var myDB={ name:'test2', version:3, db:null }; var students=[ { id:1001, name:"Byron", age:24 }, { id:1002, name:"Frank", age:30 }, { id:1003, name:"Aaron", age:26 } ]; openDB(myDB.name,myDB.version);//打開數據庫 setTimeout(function(){ addData(myDB.db,'students'); },1000); //closeDB(myDB.db);//關閉數據庫 打開和關閉數據庫不能同時存在??? //deleteDB(myDB.name);//刪除數據庫 </script>