jquery的indexeddb使用jquery
項目地址: github.com/axemclion/jquery-indexeddb/blob/gh-pages/docs/README.mdgit
工具類 var MyDb = { DB_NAME : 'PaperData', DB_VERSION : 3 , //使用正整數,別用浮點型 initDb :function() { console.debug("initDb ..."); var req = indexedDB.open(MyDb.DB_NAME,MyDb.DB_VERSION); req.onsuccess = function (evt) { db = evt.target.result; console.debug("initDb opened"); }; req.onerror = function (evt) { console.error("initDb error:", evt.target.errorCode || evt.target.error); }; req.onupgradeneeded = function (evt) { db = evt.target.result; $(db.objectStoreNames).each(function (index,data) { db.deleteObjectStore(data) }); var store= db.createObjectStore("questions",{ "keyPath":"info" }); store.createIndex('paperIndex','paper',{unique:false}); //store.createIndex('nameIndex','name',{unique:false}); }; }, getDB: function () { return $.indexedDB(MyDb.DB_NAME,MyDb.DB_VERSION) } };
//db的初始化 $(function () { MyDb.initDb(); var db = MyDb.getDB(); //此時可使用的db,這個db能夠保存爲全局變量 });
//保存到questions裏面的信息,put表示沒有就加入,有就更新 db.objectStore("questions").put({info:"paper_"+paper_info.paper_id+"_"+name,paper:paper_info.paper_id,name:name,value:value})
//普通查詢,獲取知足要求的key=1或key=2的記錄的全部記錄 db.objectStore("questions").each(function (data) { console.log(data) },[1,2])
//根據paperIndex獲取paper爲100的值,也能夠是範圍[100,110](這個是根據索引獲取,效率比較高) db.objectStore("questions").index("paperIndex").each(function(data){ console.log(data) }, 100)