精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Firefox OS中使用IndexedDB

移動開發(fā)
截至到現(xiàn)在IndexedDB,不同的廠商提供的調(diào)用方式可能會有所差異。本文針對firefox os,對IndexedDB的常用的使用進(jìn)行說明。本文的示例在firefox os和firfox瀏覽器進(jìn)行過測試。其他瀏覽器的使用請根據(jù)相關(guān)API文檔進(jìn)行修改。

截至到現(xiàn)在IndexedDB,不同的廠商提供的調(diào)用方式可能會有所差異。本文針對firefox os,對IndexedDB的常用的使用進(jìn)行說明。本文的示例在firefox os和firfox瀏覽器進(jìn)行過測試。其他瀏覽器的使用請根據(jù)相關(guān)API文檔進(jìn)行修改。

IndexedDB是存儲和快速檢索結(jié)構(gòu)型數(shù)據(jù)的客戶端API,數(shù)據(jù)采用key/value的形式,value可以是結(jié)構(gòu)型的數(shù)據(jù)對象,如json對象。

一、打開一個數(shù)據(jù)庫

  1. //Open IndexedDB
  2. function openDB() {
  3.   var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
  4.   var request = indexedDB.open("B2GDBTest", 1);
  5.   request.onsuccess = function(event) {
  6.     console.log("database open success:" + request.result);
  7.     db = request.result;
  8.   };
  9.   request.onupgradeneeded = function(event) {
  10.    createObjectStore(event.target.result);
  11.   };
  12.   request.onerror = function(event) {
  13.    console.log("database open error:" + request.errorCode);
  14.   };
  15. }

首先需要獲取一個IDBFactory對象,目前不同的瀏覽器獲取的方法有所不同,可以使用下面的寫法來兼容不同的瀏覽器(本文的DEMO只針對firefox os或者firefox瀏覽器)

  1. var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB; 

使用IDBFactory

  1. IDBOpenDBRequest open (in DOMString name, long long version); 

打開數(shù)據(jù)庫的時候需要指定數(shù)據(jù)庫的名字和版本,并按照如下的順序執(zhí)行打開操作

1.如果數(shù)據(jù)庫已經(jīng)存在,會等到versionchange事物結(jié)束后繼續(xù)執(zhí)行,如果打開了一個待刪除的數(shù)據(jù)庫,會等待刪除操作完畢后繼續(xù)執(zhí)行。(注意:這兩個事件并不是本次open數(shù)據(jù)庫產(chǎn)生的,而是其他的操作中產(chǎn)生的未完成的versionchange和刪除操作)

2.如果打開的數(shù)據(jù)庫的版本小于已經(jīng)存在的數(shù)據(jù)庫版本,或終止執(zhí)行,并返回一個類型為VersionError的DOMError

3.如果打開的數(shù)據(jù)庫版本大于已經(jīng)存在的數(shù)據(jù)庫版本,會執(zhí)行versionchange事物,并執(zhí)行onupgradeneeded回調(diào)函數(shù)

4.如果打開的數(shù)據(jù)庫不存在,會創(chuàng)建一個版本為1沒有任何ObjectStore新的數(shù)據(jù)庫

5.連接打開的數(shù)據(jù)庫

二、創(chuàng)建一個ObjectStore

ObjectStore相當(dāng)與關(guān)系型數(shù)據(jù)庫里的表,你只能在versionchange事物中創(chuàng)建或者刪除ObjectStore,而現(xiàn)在,你只能在上面提到的onupgradeneeded回調(diào)中創(chuàng)建或刪除ObjectStore。創(chuàng)建ObjectStore的操作可以參考如下代碼

  1. //Create Object Store  
  2. function createObjectStore(db) {  
  3.   if (!db) {  
  4.     alert("Database is not open!");  
  5.     return;  
  6.   }  
  7.   if (db.version == 1) {  
  8.  
  9.     if (db.objectStoreNames.contains('customers')) {  
  10.       db.deleteObjectStore("customers")  
  11.     }  
  12.     // Create Object Store  
  13.     // This method was not called from a VERSION_CHANGE transaction callback.  
  14.     var objectStore = db.createObjectStore("customers", {  
  15.       // primary key  
  16.       keyPath : "ssn",  
  17.       // auto increment  
  18.       autoIncrement : true 
  19.     });  
  20.  
  21.     objectStore.createIndex("name", "name", {  
  22.       unique : false 
  23.     });  
  24.  
  25.     objectStore.createIndex("email", "email", {  
  26.       unique : false 
  27.     });  
  28.     console.log("create object store success!");  
  29.   }  

三、數(shù)據(jù)庫的CRUD操作

IndexedDB操作CRUD還是比較容易的,下面分別給出樣例代碼

1.新增

  1. function saveObject() {  
  2.   if (!db) {  
  3.     alert("Database is not open!");  
  4.     return;  
  5.   }  
  6.   var name = document.getElementById("name").value;  
  7.   var email = document.getElementById("email").value;  
  8.   if ("" == name) {  
  9.     alert("name is null!");  
  10.     return;  
  11.   }  
  12.   //Open a transaction with a scope of data stores and a read-write mode.  
  13.   var trans = db.transaction(['customers'], IDBTransaction.READ_WRITE);  
  14.  
  15.   var store = trans.objectStore('customers');  
  16.   var customer = {};  
  17.   customer["name"] = name;  
  18.   customer["email"] = email;  
  19.   var req = store.add(customer);  
  20.   req.onsuccess = function(event) {  
  21.     console.log("save object success!(name:" + name + ",email:" + email + ")");  
  22.   };  
  23.   req.onerror = function(enent) {  
  24.     console.log("save object error:" + req.errorCode);  
  25.   };  

2.修改

  1. //Update Object  
  2. function updateObject() {  
  3.   if (!db) {  
  4.     alert("Database is not open!");  
  5.     return;  
  6.   }  
  7.   var trans = db.transaction(['customers'], IDBTransaction.READ_WRITE);  
  8.  
  9.   var store = trans.objectStore('customers');  
  10.   var customer = {};  
  11.   customer["ssn"] = parseInt(document.getElementById("key").value);  
  12.   customer["name"] = document.getElementById("u_name").value;  
  13.   customer["email"] = document.getElementById("u_email").value;  
  14.   result = store.put(customer);  
  15.   result.onerror = function(event) {  
  16.     console.log("update object error:"+result.errorCode);  
  17.   };  
  18.   result.onsuccess = function(event) {  
  19.     console.log("update object success:ssn:"+customer["ssn"]+",name:"+customer["name"]+",email:"+customer["email"] );  
  20.   };  

3.刪除

  1. //Delete Object()  
  2. function deleteObject(index,obj) {  
  3.   var trans = db.transaction(['customers'], IDBTransaction.READ_WRITE);  
  4.   var store = trans.objectStore('customers');  
  5.   result = store.delete(index);  
  6.   result.onerror = function(event) {  
  7.     console.log("delete Objcet error:"+result.errorCode);  
  8.   }  
  9.   result.onsuccess = function(event) {  
  10.     console.log("delete Object success!");  
  11.     obj.disabled = true;  
  12.   }  
  13. }  

4.查找

  1. //List Objects  
  2. function listObjects() {  
  3.   if (!db) {  
  4.     alert("Database is not open!");  
  5.     return;  
  6.   }  
  7.   var trans = db.transaction(['customers'], IDBTransaction.READ_ONLY);  
  8.   var store = trans.objectStore('customers');  
  9.   var curreq = store.openCursor(IDBKeyRange.bound(1, 4), IDBCursor.PREV);  
  10.   // The "onsuccess" event fires when the cursor is created and  
  11.   // every time the cursor iterates over data.  
  12.   // The following block of code runs multiple times,  
  13.   // until the cursor runs out of data to iterate over.  
  14.   // At that point, the result's request becomes null.  
  15.   var view = document.getElementById("objcetsView");  
  16.   view.innerHTML = "";  
  17.   curreq.onsuccess = function(e) {  
  18.     var cursor = curreq.result;  
  19.     // If the cursor is pointing at something, ask for the data.  
  20.     if (cursor) {  
  21.       var getreq = store.get(cursor.key);  
  22.       // After the data has been retrieved, show it.  
  23.       getreq.onsuccess = function(e) {  
  24.         console.log('key:', cursor.key, 'value:', getreq.result);  
  25.         var value = getreq.result;  
  26.         var objLi=document.createElement("li");  
  27.         objLi.innerHTML = "key:"+cursor.key+",name:"+ value["name"]+",email:"+value["email"]+"<input type='button' value='delete' onclick='deleteObject("+cursor.key+",this)'/>";  
  28.         var updateString = "<input type='button' value='update' onclick='getUpdateObject("+cursor.key + ",\""+value["name"]+"\",\""+value["email"]+"\");'/>";  
  29.         objLi.innerHTML += updateString;  
  30.         view.appendChild(objLi);  
  31.  
  32.         // OK, now move the cursor to the next item.  
  33.         cursor.continue();  
  34.       };  
  35.     }  
  36.   };  

源碼下載:http://chyblog-chyblog.stor.sinaapp.com/wp-content/uploads/2012/09/dbtest.zip

責(zé)任編輯:Yeva 來源: chyblog.com
相關(guān)推薦

2012-02-23 15:36:51

IndexedDB

2013-01-14 12:19:48

Firefox OSFirefox OS

2013-01-14 13:21:09

Firefox os

2013-06-24 09:23:25

Firefox OS火狐手機Android

2019-12-10 09:46:12

Elementary PantheonLinux

2013-09-02 11:18:06

Firefox OSMarketplace

2013-01-14 13:14:11

Firefox OS

2012-09-12 09:08:54

Firefox OS

2014-01-09 14:07:46

Firefox OS操作系統(tǒng)

2012-09-04 13:35:24

Firefox OS

2012-09-29 10:24:14

Firefox OS

2013-01-18 10:59:44

IBMdW

2014-06-16 10:20:46

Firefox OSWeb Apps

2013-01-14 12:25:49

Firefox OS

2013-01-14 12:40:56

Firefox OS

2015-11-12 13:47:53

Firefox OSAPPFirefox

2013-02-25 09:15:30

MWC 2013Firefox OS

2013-01-08 14:58:48

Firefox OS

2009-03-23 09:57:19

2013-04-24 10:19:47

Firefox OS火狐手機
點贊
收藏

51CTO技術(shù)棧公眾號

国际av在线| 中文字幕在线播| 成人激情自拍| 91久久精品国产91性色tv| 亚洲国产精品毛片| 亚洲国产一二三区| 久久国产精品99国产| 精品国产自在精品国产浪潮| 中文字幕99页| 日韩免费小视频| 一区二区三区精品在线| 欧美日韩免费高清| 超碰在线人人干| 日本伊人色综合网| 久久久久久有精品国产| 欧美成人久久久免费播放| 成人精品毛片| 欧美精品日日鲁夜夜添| 红桃av在线播放| 伊人春色在线观看| 日本一区二区三区四区在线视频 | 春暖花开亚洲一区二区三区| 亚洲男同1069视频| 久久综合给合久久狠狠色| 一级黄色大片免费| 亚洲日本国产| 久久久999国产| 好吊视频在线观看| 红杏成人性视频免费看| 91麻豆精品国产无毒不卡在线观看| 97av视频在线观看| 黄网站在线观| 亚洲精品综合在线| 亚洲最新在线| 粉嫩一区二区三区国产精品| 91美女蜜桃在线| 国产精品亚洲一区| 国产99久久九九精品无码免费| 美女爽到高潮91| 国产mv免费观看入口亚洲| 国产第一页在线播放| 欧美91视频| 色狠狠久久aa北条麻妃| 欧美日韩中文字幕视频| 国产伦精品一区二区三区千人斩 | 欧美性猛交视频| av高清在线免费观看| 视频三区在线| 欧美激情一区二区三区蜜桃视频| 久久国产精品99久久久久久丝袜 | 亚洲电影有码| 色综合久久久久综合| 免费黄色福利视频| 午夜久久中文| 一本到三区不卡视频| 久久9精品区-无套内射无码| 成人爱爱网址| 欧美中文字幕一区二区三区| 97公开免费视频| 忘忧草在线www成人影院| 韩曰欧美视频免费观看| 亚洲国产精品久久久久爰色欲| 小早川怜子影音先锋在线观看| 一卡二卡欧美日韩| xxx在线免费观看| 成人av午夜电影| 国产精品推荐精品| 污视频网站观看| 2021国产在线| 亚洲激情校园春色| 欧美美女黄色网| xxxx成人| 色一区在线观看| 在线免费观看av的网站| 免费视频观看成人| 制服丝袜中文字幕亚洲| 国内精品国产三级国产aⅴ久| 久久久久久久久成人| 欧美mv日韩mv国产网站| av黄色一级片| 欧美丝袜丝交足nylons172| 日韩中文字幕在线播放| 中文字幕av久久爽av| 亚洲精品美女| 国产精品久久久久久网站| 92久久精品一区二区| 国产成人亚洲综合a∨婷婷 | 国产黄色片免费在线观看| 无码小电影在线观看网站免费| 在线视频你懂得一区| 午夜啪啪小视频| 欧美美女黄色| 久久精品国产精品| xxxxxx国产| 欧美aa在线视频| 成人91免费视频| 美女做暖暖视频免费在线观看全部网址91| 中文字幕的久久| 成人国产在线看| 免费电影日韩网站| 欧美一级二级三级蜜桃| 黄色aaa视频| 综合国产精品| 国产成人精品日本亚洲| 国产黄色美女视频| 日本一区二区三区dvd视频在线| 台湾无码一区二区| 亚洲wwww| 亚洲国产又黄又爽女人高潮的| 少妇无套高潮一二三区| 黄色成人在线网址| 国产一区深夜福利| 欧美精品久久久久久久久久丰满| 自拍偷拍亚洲欧美日韩| av天堂永久资源网| 亚洲精品18| 综合网日日天干夜夜久久| 日韩免费一级片| 国内精品免费**视频| 欧洲一区二区日韩在线视频观看免费 | 穿情趣内衣被c到高潮视频| 成人小电影网站| 精品美女一区二区三区| 日韩在线观看免| 日韩高清一级片| 久久国产一区二区| 男男gaygays亚洲| 欧美高清视频不卡网| 91精品人妻一区二区三区蜜桃欧美 | 成人爽a毛片免费啪啪| 欧美精品一区二区三区蜜臀| 国产中文av在线| 免费在线视频一区| 欧美日韩精品久久久免费观看| 大黄网站在线观看| 欧美一区二区精美| 久久人妻无码aⅴ毛片a片app | 91网址在线观看精品| 精品免费视频| 国产黑人绿帽在线第一区| 深夜福利视频在线观看| 精品久久久精品| 黄色国产在线观看| 亚洲少妇在线| 精品国产第一页| 黄视频免费在线看| 亚洲电影免费观看| 日本少妇在线观看| jiyouzz国产精品久久| 精品视频在线观看一区| 好吊妞视频这里有精品| 欧美精品videosex牲欧美| www.精品视频| 亚洲国产欧美在线| 亚洲色偷偷色噜噜狠狠99网| 亚洲国产一区二区三区a毛片| 国产精品高清一区二区三区| 9999精品成人免费毛片在线看| 亚洲第一av在线| 日本一区二区欧美| 91麻豆免费观看| 成年人黄色片视频| 欧洲激情综合| 91精品久久久久久| 2020国产在线视频| 欧美精品一区二区久久婷婷| 中文字幕日韩一级| 久久久99精品免费观看不卡| 天美星空大象mv在线观看视频| 亚瑟一区二区三区四区| 国产第一区电影| 日本中文字幕电影在线免费观看| 这里只有精品电影| 国产一卡二卡在线| av一二三不卡影片| 99精品免费在线观看| 成人三级视频| 7777精品久久久大香线蕉小说 | 日韩av手机在线| aaa日本高清在线播放免费观看| 欧美女孩性生活视频| 欧美精品一区二区蜜桃| caoporen国产精品视频| 91av俱乐部| 欧美一区国产在线| 国产一区二区三区奇米久涩| 中文字幕日本一区二区| 另类美女黄大片| 四虎在线观看| 91精品免费在线观看| 日韩欧美大片在线观看| 国产精品久久久久久久岛一牛影视| 美女日批在线观看| 欧美亚洲视频| 日韩中文在线字幕| 亚洲人成亚洲精品| 亚洲一区二区在线| xxx欧美xxx| 欧美日韩福利电影| 国产精品一区二区三区四区色| 日韩一区二区在线看片| 岛国av中文字幕| 亚洲在线成人精品| 成熟人妻av无码专区| 波多野结衣中文一区| 中文久久久久久| 日韩午夜激情| 干日本少妇视频| 久久99国内| 国内一区二区在线视频观看| 亚洲综合资源| 国产精品扒开腿做爽爽爽男男| 色呦呦在线观看视频| 日韩在线激情视频| 奇米影视888狠狠狠777不卡| 日韩精品最新网址| 国产一区二区三区视频免费观看| 懂色av影视一区二区三区| 久久久久久久久艹| 自拍偷拍亚洲综合| 五月天免费网站| 久久久久久久久岛国免费| 久草免费资源站| 国产一区二区美女| 天天影视色综合| 日韩va欧美va亚洲va久久| 精品这里只有精品| 在线欧美三区| 亚洲乱码日产精品bd在线观看| 国产精品成人av| 亚洲精品国产精品国自产观看| 老汉色老汉首页av亚洲| 国产精品v欧美精品v日韩| 伊人久久大香伊蕉在人线观看热v| 国产aⅴ夜夜欢一区二区三区| 日韩脚交footjobhdboots| 久久久人成影片一区二区三区| 成人在线观看免费网站| www亚洲精品| 日本福利在线| 色吧影院999| 理论片午午伦夜理片在线播放| 在线观看亚洲区| 成年人视频在线看| 国产亚洲a∨片在线观看| 免费黄网站在线观看| 亚洲精品少妇网址| 欧洲一级在线观看| 国产亚洲成av人片在线观看桃| 免费在线视频一级不卡| 亚洲石原莉奈一区二区在线观看| 天堂a√在线| 亚洲欧美www| 国产对白叫床清晰在线播放| 亚洲日本欧美中文幕| 国内在线免费高清视频| 在线成人免费网站| 2021av在线| 超碰97人人做人人爱少妇| 大地资源网3页在线观看| 欧美国产日韩视频| 鲁鲁在线中文| 国产精品久久久久久久7电影| 国产精品伦一区二区| 成人激情视频免费在线| 日本一区二区三区播放| 国产伦精品一区二区三区四区免费| 国产ts一区| 日本一区二区三区免费观看| 日韩成人三级| 成人区一区二区| 国产亚洲精品自拍| 91av俱乐部| 国产精品一区一区| 亚洲图片综合网| 久久久亚洲欧洲日产国码αv| 黄色av免费播放| 亚洲精品国久久99热| www..com国产| 欧美精品久久天天躁| 亚洲国产剧情在线观看| 亚洲精品资源美女情侣酒店 | 欧美日韩国产成人| 9999在线视频| 国产精品毛片a∨一区二区三区|国| 亚洲精品三区| 精品国产乱码久久久久久郑州公司 | 特一级黄色大片| 欧美性猛交xxxx乱大交退制版| 99久久国产免费| 日韩精品中文字幕在线| 日本三级视频在线观看| 国语自产在线不卡| 国产激情欧美| 国产伦精品一区二区三区照片| 奇米色欧美一区二区三区| 日韩视频在线免费播放| 亚欧美中日韩视频| 欧美xxxxxbbbbb| 久久久国际精品| 久久久国产精品人人片| 欧美专区日韩专区| 日本高清视频免费看| 久久激情视频久久| 亚洲综合电影| 成人欧美视频在线| 日韩久久久久| 各处沟厕大尺度偷拍女厕嘘嘘| 国产乱国产乱300精品| 久久丫精品忘忧草西安产品| 亚洲国产精品天堂| 一级淫片免费看| 亚洲人成网在线播放| 精精国产xxxx视频在线中文版| 国产精品永久在线| 亚洲a级精品| 久久av综合网| 狠狠色狠狠色综合系列| 蜜桃久久精品成人无码av| 亚洲午夜久久久久久久久电影网| 在线免费一级片| 亚洲情综合五月天| 欧美a级在线观看| 国产成人亚洲欧美| 一本精品一区二区三区| 亚洲一级片网站| 中文字幕不卡在线| 中文字幕一区在线播放| 亚洲缚视频在线观看| 五月花成人网| 91网站免费看| 91精品精品| 在线能看的av网站| 欧美国产日韩一二三区| 无码人妻精品一区二区| 亚洲精品国产精品国自产在线| 日韩精品卡一| 亚洲影院色无极综合| 羞羞色午夜精品一区二区三区| 538在线视频观看| 国产欧美日韩久久| 国产男人搡女人免费视频| 亚洲免费伊人电影在线观看av| 成人国产电影在线观看| 国产一区二区不卡视频| 亚洲国产午夜| 91精品小视频| 色综合天天天天做夜夜夜夜做| 天堂资源最新在线| 日韩av电影免费观看高清| 九九亚洲视频| 中文字幕第100页| 中文字幕在线观看一区| 91精品国产乱码久久| 日韩在线高清视频| 久久在线观看| www.日本在线视频| 不卡视频一二三四| 四虎成人永久免费视频| 亚洲午夜国产成人av电影男同| 日韩经典一区| 亚洲视频在线二区| 国产乱子轮精品视频| 免费无码毛片一区二区app| 精品国产一区久久| 僵尸再翻生在线观看| 欧美一区二区三区四区五区六区 | 成人有码视频在线播放| 一区二区三区四区电影| 国产亚洲精品成人a| 欧美日韩国产精品专区 | 国产一区二区在线不卡| 欧美成人激情视频免费观看| 成人资源在线播放| 激情六月丁香婷婷| 国产精品久久久久久久午夜片| 精品国产乱码一区二区三| 韩国福利视频一区| 欧美三级三级| 麻豆精品国产传媒| 欧美日韩在线视频观看| 天天在线视频色| 国产精品久久7| 喷水一区二区三区| 久久亚洲成人av| 国产午夜一区二区| 激情不卡一区二区三区视频在线 | 校园春色亚洲| 一区二区精品在线观看| 成人一区二区三区在线观看 | 蜜臀va亚洲va欧美va天堂| 黄色一级片在线免费观看| 亚洲精品资源美女情侣酒店| 成人短视频软件网站大全app| 蜜臀av无码一区二区三区| 国产精品久久三区| 天堂网在线观看视频| 国产综合久久久久| 亚洲人成毛片在线播放女女| 成人黄色短视频|