精品欧美一区二区三区在线观看 _久久久久国色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精品久久久久久蜜桃| 天天操天天干视频| 欧美三级自拍| 欧美三区在线观看| 欧美日韩一级在线| 精品久久久久成人码免费动漫| 欧美成人一区二免费视频软件| 亚洲国产精彩中文乱码av| 毛片在线播放视频| 在线观看免费网站黄| 成人免费视频免费观看| 欧美一区二区.| 娇妻被老王脔到高潮失禁视频| 成人国产在线| 偷窥国产亚洲免费视频| 欧美日韩在线不卡一区| 国产美女主播在线观看| 香蕉av777xxx色综合一区| 日韩中文字幕av| free性中国hd国语露脸| **日韩最新| 精品日本高清在线播放| 天堂精品一区二区三区| www久久久久久| 性色一区二区三区| 欧美激情精品久久久久久变态 | 免费看日产一区二区三区| 欧美日韩国产中文精品字幕自在自线| 色一情一乱一伦一区二区三区丨 | 中文高清一区| 在线观看国产精品91| 午夜男人的天堂| 精品国产乱码一区二区三区| 欧洲视频一区二区| 日本熟妇人妻xxxx| 九义人在线观看完整免费版电视剧| 久久先锋影音av鲁色资源| 波多野结衣久草一区| 一区二区三区午夜| 噜噜噜躁狠狠躁狠狠精品视频| 日韩专区在线播放| 成人黄色a级片| 国产精品调教| 日韩欧美中文字幕制服| 欧美日本视频在线观看| jizz一区二区三区| 亚洲精品视频免费看| 亚洲一区二区三区在线观看视频| 噜噜噜噜噜在线视频| 成人福利视频网站| 国产chinese精品一区二区| 国产精品主播一区二区| 久久精品久久99精品久久| 国自产精品手机在线观看视频| 波多野结衣亚洲色图| 国产精品视频一区二区三区四蜜臂| 日韩一级精品视频在线观看| 国产成人在线综合| 在线观看爽视频| 午夜电影一区二区三区| 女人被男人躁得好爽免费视频| 国产原厂视频在线观看| 1区2区3区欧美| 色哺乳xxxxhd奶水米仓惠香| 丝袜在线视频| 亚洲宅男天堂在线观看无病毒| 日本中文字幕一级片| 亚洲性图自拍| 亚洲综合另类小说| 日韩av高清在线看片| 9999在线视频| 亚洲午夜成aⅴ人片| 亚洲 自拍 另类小说综合图区| а√天堂资源官网在线资源| 欧美日韩亚洲精品一区二区三区| 国产一级片黄色| 亚洲爱爱视频| 欧美日韩在线不卡| 亚洲精品怡红院| 日韩欧美一区二区三区在线观看| 欧美日韩综合视频网址| 五月婷婷六月合| 久久99成人| 亚洲第一av在线| 国产不卡一二三| 成人三级毛片| 日韩电影网在线| 亚洲不卡的av| 欧美综合视频| 久久成人18免费网站| 不卡的免费av| 免费国产自线拍一欧美视频| 国产精品女主播视频| 91丨porny丨在线中文 | 乱中年女人伦av一区二区| 亚洲精品一二区| 亚洲国产综合av| 希岛爱理av免费一区二区| 国产亚洲一级高清| 五月婷婷一区二区| 狂野欧美性猛交xxxx巴西| 国产精品综合不卡av| 亚洲免费成人在线| 欧美激情一区二区三区四区| 男人天堂网站在线| 成人av观看| 日韩色视频在线观看| 搡老熟女老女人一区二区| 66国产精品| 国产精品劲爆视频| 能在线看的av| 一区二区三区 在线观看视频| 国产 国语对白 露脸 | 日韩暖暖在线视频| 国产不卡精品视频| 国产丝袜美腿一区二区三区| 免费成人午夜视频| 粉嫩久久久久久久极品| 欧美成人午夜激情视频| 一个人看的www日本高清视频| 2014亚洲片线观看视频免费| 狠狠干 狠狠操| 大型av综合网站| 欧美精品制服第一页| 国产一区二区三区在线观看| 国产精品视频线看| 一区二区三区网址| 精品久久视频| 日韩免费精品视频| a天堂中文在线88| 在线观看www91| 丰满圆润老女人hd| 激情欧美一区二区三区| 不卡日韩av| www中文字幕在线观看| 欧美日韩国产欧美日美国产精品| 久久久久无码精品国产sm果冻 | 欧洲杯半决赛直播| 国产精品久久久久久亚洲影视 | 国产成人短视频在线观看| 欧美一区三区三区高中清蜜桃| 91麻豆精品国产91久久久久| 强制高潮抽搐sm调教高h| 精品在线免费观看| 欧美日韩午夜爽爽| 中文字幕视频精品一区二区三区| 国外成人在线直播| 久久久久久久久亚洲精品| 色吊一区二区三区| 91狠狠综合久久久久久| 麻豆精品国产91久久久久久| 手机福利在线视频| 日韩高清一区| 欧美极品少妇xxxxⅹ免费视频| 秋霞欧美在线观看| 日韩欧亚中文在线| 成人黄色短视频| 国产91露脸合集magnet| 国产二级片在线观看| 国产一区二区三区四区五区| 国产精品永久免费| 毛片av在线| 亚洲精品一区二区三区99| 久久久久久福利| 久久久综合视频| 色诱视频在线观看| 牛牛国产精品| 蜜桃av噜噜一区二区三区| 成人在线观看免费播放| 欧美国产视频一区二区| 欧美日韩国产综合视频| 欧美区视频在线观看| 欧美日韩黄色网| 97超碰欧美中文字幕| 激情综合在线观看| 国产韩日影视精品| 国产一区二区高清视频| a级片免费在线观看| 在线观看久久av| 亚洲a视频在线观看| 色婷婷综合激情| 欧美成人精品一区二区免费看片 | 欧美日本韩国一区| www..com国产| 日韩一区有码在线| 中文字幕国产专区| 国产精品中文字幕欧美| 乱子伦视频在线看| 欧美日本在线| 日本高清一区| 岛国精品一区| 国产日韩欧美一二三区| 不卡av免费观看| 一本色道久久综合狠狠躁篇怎么玩| 91国内精品视频| 日韩欧美国产黄色| 国产无遮无挡120秒| 99精品久久久久久| 亚洲天堂2018av| 国语精品一区| 日本特级黄色大片| 精品久久久久久久久久久下田 | 国产在线日韩| 自拍偷拍99| 精品日韩免费| 欧美久久综合性欧美| eeuss国产一区二区三区四区| 成人精品久久av网站| 欧美极度另类| 97**国产露脸精品国产| 欧美日韩经典丝袜| 欧美成人三级视频网站| 欧美成人高清在线| 在线亚洲午夜片av大片| 天堂中文在线8| 欧美一区国产二区| 色婷婷久久综合中文久久蜜桃av| 欧美性极品少妇精品网站| 日韩视频免费观看高清| 亚洲一区二区三区在线| 欧美日韩三级在线观看| 亚洲精品日韩综合观看成人91| 天堂а√在线中文在线鲁大师| 国产精品素人视频| www.黄色在线| 亚洲国产精品二十页| 手机看片福利视频| 国产日产欧美一区二区三区| 亚洲激情视频小说| 久久婷婷色综合| 日韩人妻无码精品综合区| 99在线精品一区二区三区| 国产黑丝在线观看| 精品一区二区在线视频| 日韩毛片在线免费看| 性欧美xxxx大乳国产app| www国产黄色| 久久看片网站| 亚洲中文字幕无码中文字| 久久久久免费| 在线看的黄色网址| 美日韩一区二区| 国产一区二区在线观看免费视频| 国产一区二区在线免费观看| 成年人看片网站| 成人丝袜高跟foot| 极品人妻一区二区三区| 久久精品视频网| 中文字幕伦理片| 国产欧美精品一区二区色综合| 性色av一区二区三区在线观看| 欧美黄色一级生活片| 93久久精品日日躁夜夜躁欧美| 欧美做受喷浆在线观看| 久久久久99精品国产片| 成人免费无码大片a毛片| 91丨九色丨尤物| 国产人妻大战黑人20p| 国产精品丝袜91| 91ts人妖另类精品系列| 亚洲激情六月丁香| 日本熟妇毛耸耸xxxxxx| 色综合久久综合网欧美综合网| 黄色污污视频软件| 日本道在线观看一区二区| 91丨九色丨海角社区| 777色狠狠一区二区三区| 性做久久久久久久久久| 精品中文视频在线| 自拍视频在线免费观看| 欧美国产第一页| 羞羞影院欧美| 97久久天天综合色天天综合色hd| 久久天堂久久| 麻豆成人在线播放| 好吊妞视频这里有精品| 精品午夜一区二区| 精品国产中文字幕第一页| 亚洲免费久久| 合欧美一区二区三区| 亚洲自偷自拍熟女另类| 日本亚洲最大的色成网站www| 污污视频在线免费| av亚洲精华国产精华精| 欧美日韩生活片| 午夜精品久久久久久久久| 在线视频 91| 日韩福利视频在线观看| 亚洲制服国产| 国产成人午夜视频网址| 国产劲爆久久| 综合操久久久| 日韩中文欧美在线| 毛茸茸free性熟hd| 中文字幕亚洲一区二区av在线| 日韩精品――中文字幕| 91精品免费观看| 香蕉视频成人在线| 欧美成年人在线观看| 香蕉成人影院| 欧美日韩视频在线一区二区观看视频| 91亚洲人成网污www| 免费在线观看的毛片| 成人av电影在线网| 国产97免费视频| 欧日韩精品视频| 日本aaa在线观看| 欧美国产亚洲精品久久久8v| 亚洲欧洲高清| 国产在线一区二区三区欧美| 欧洲乱码伦视频免费| 欧美 日本 亚洲| 成人在线视频首页| 国产精品欧美久久久久无广告| 精品亚洲aⅴ无码一区二区三区| 天天操天天综合网| 亚洲风情第一页| 成人97在线观看视频| 96视频在线观看欧美| 亚洲高清视频一区二区| 久久综合九色| 91国模少妇一区二区三区| 亚洲高清三级视频| 国产 日韩 欧美 精品| 久久av.com| 视频欧美一区| 成人午夜免费在线视频| 国产精品一区二区久激情瑜伽| 日韩在线不卡av| 337p亚洲精品色噜噜| 看女生喷水的网站在线观看| 成人信息集中地欧美| 日韩在线看片| 五月婷婷六月合| 国产精品另类一区| 国产精品自拍第一页| 色播久久人人爽人人爽人人片视av| 偷拍视频一区二区三区| 国产日韩亚洲精品| 在线播放亚洲| 成年人的黄色片| 欧美网站在线观看| 国产高清视频免费最新在线| 国产欧美韩国高清| 五月久久久综合一区二区小说| 777一区二区| 亚洲精品你懂的| 国产又粗又大又爽| 欧美另类老女人| 日韩一级电影| 精品国产免费av| 久久午夜国产精品| 亚洲综合网av| 色哟哟入口国产精品| 二吊插入一穴一区二区| 亚洲高清不卡一区| 国产精品自拍毛片| www青青草原| 日韩一级视频免费观看在线| 欧美1—12sexvideos| 国产精品乱码视频| 99国产精品99久久久久久粉嫩| 午夜免费福利在线| 亚洲精品国久久99热| 神马午夜精品95| 国产精品免费一区二区三区都可以| 91超碰成人| 免费高清视频在线观看| 欧美视频在线免费看| а√天堂官网中文在线| 国产亚洲欧美另类一区二区三区| 日韩精品一二三区| 精品人妻一区二区三区视频| 欧美久久久久久久久| 成人观看网址| 日本午夜精品电影| 懂色一区二区三区免费观看| 国产婷婷色一区二区在线观看| 中文字幕少妇一区二区三区| 秋霞一区二区| 欧美色图另类小说| 亚洲欧美电影院| 免费在线国产| 91视频-88av| 日韩精品1区2区3区| 日本熟女一区二区| 超碰精品一区二区三区乱码|