html5内置了2种本地数据库,一是被称为“SQLLite”,可以通过SQL语言来访问文件型SQL数据库。二是被称为“indexedDB” 的NoSQL类型的数据库,本篇主要讲indexedDB数据库。
该数据库是一种存储在客户端本地的NoSQL数据库,目前chrome11以上、Firefox4以上、Opera18以上、Safar8以上及IE10以上的浏览器提供支持
一、连接数据库
使用indexedDB.open方法连接数据库
var dbName = 'indexedDBTest'; //数据库名 var dbVersion = 20170603; //版本号 /*连接数据库,dbConnect对象为一个IDBOpenDBRequest对象,代表数据库连接的请求对象*/ var dbConnect = indexedDB.open(dbName, dbVersion);
open方法返回一个IDBOpenDBRequest对象,代表数据库连接的请求对象;该方法接收2个参数
第一个参数:字符串,代表数据库名
第二个参数:无符号长整形数值,代表版本号
示例代码如下
1 <script> 2 //在浏览器中都能运行的统一定义 3 //首先需要对indexedDB数据库,及该数据库所使用的事务、IDBKeyRange对象与游标对象进行预定义 4 window.indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB; 5 window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction; 6 window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange; 7 window.IDBCursor = window.IDBCursor || window.webkitIDBCursor || window.msIDBCursor; 8 9 function connectDatabase() { 10 //数据库名 11 var dbName = 'indexedDBTest'; 12 //版本号 13 var dbVersion = 20170603; 14 var idb; 15 /*连接数据库,dbConnect对象为一个IDBOpenDBRequest对象,代表数据库连接的请求对象*/ 16 var dbConnect = indexedDB.open(dbName, dbVersion); 17 //连接成功时所执行的事件处理函数 18 dbConnect.onsuccess = function(e) { 19 //e.target.result为一个IDBDatabase对象,代表连接成功的数据库对象 20 idb = e.target.result; 21 alert('数据库连接成功'); 22 }; 23 //连接失败是要处理得事件 24 dbConnect.onerror = function() { 25 alert('数据库连接失败'); 26 }; 27 } 28 </script> 29 30 <input type="button" value="连接数据库" onclick="connectDatabase();" /> 31