国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何解決IndexedDB在webkit內核下新舊版本的兼容問題

數據庫 其他數據庫
這篇文章會接著介紹IndexedDB(以下簡稱IDB)。我們會介紹如何解決在webkit內核下、新舊版本規范的兼容問題。目前支持IDB的webkit內核瀏覽器有chrome和傲游3,safari暫不支持IDB。

這篇文章會接著介紹IndexedDB(以下簡稱IDB)。我們會介紹如何解決在webkit內核下、新舊版本規范的兼容問題。

目前支持IDB的webkit內核瀏覽器有chrome和傲游3,safari暫不支持IDB。

首先,由于內核不同,所以window.indexedDB被改為了帶有webkit前綴的變量window.webkitIndexedDB。同時發生變化的還有兩個對象IDBKeyRange和IDBTransaction。如果想兼容gecko和webkit內核,那么可以在程序的開頭加入如下代碼:

  1. if ('webkitIndexedDB' in window) {  
  2.     window.indexedDB = webkitIndexedDB;  
  3.     window.IDBKeyRange = webkitIDBKeyRange;  
  4.     windowwindow.IDBTransaction = window.webkitIDBTransaction;  
  5. }  
  6. else if ('mozIndexedDB' in window) {  
  7.     window.indexedDB = mozIndexedDB;  

其次,webkit內核(chrome17或傲游3.3)和Firefox9及其更舊的版本遵循的IDB規范已經是舊版本的規范了,而Firefox10已經遵循的是新版本IDB規范。兩者的主要區別在于版本控制的方式不同。舊版中的版本變更方式是:

  1. var req = window.indexedDB.open(dbName); // 舊版在這里不需要寫明dbVersion  
  2. req.onsuccess = function (e) {  
  3.     var db = this.result;  
  4.     if (db.version != '1.0') {  
  5.         var subReq = db.setVersion('1.0'); // 通過setVersion修改版本號,而不是onupgradeneeded事件  
  6.         subReq.onsuccess = function (e) {  
  7.             // TODO: real success code  
  8.         };  
  9.     }  
  10.     else {  
  11.         // TODO: real success code  
  12.     }  
  13. }; 

除了上述的兩點不同,新舊兩版的接口設計基本上是相同的。

規范的頻繁變更確實不是我們希望看到的,在IDB尚未被廣泛應用時做出改變,或許影響面還不算太大。但如果我們希望通過一套代碼兼容新舊兩版規范,還是有辦法的。

  1. var req = window.indexedDB.open(dbName, dbVersion); // 對于舊版而言,會忽略第二個參數,因此這里可以兼容  
  2. req.onsuccess = function (e) {  
  3.     var db = this.result;  
  4.     if (db.version != dbVersion) { // 新版中兩者絕對一致,否則只會觸發onupgradeneeded事件,因此這里也可以兼容  
  5.         // TODO: code of changing object stores for new version  
  6.         var subReq = db.setVersion(dbVersion);  
  7.         subReq.onsuccess = function (e) {  
  8.             // TODO: real success code  
  9.         };  
  10.     }  
  11.     else {  
  12.         // TODO: real success code  
  13.     }  
  14. };  
  15. req.onupgradeneeded = function (e) {  
  16.     // TODO: code of changing object stores for new version  
  17. }; 

---------------- 兼容IE的分割線 ---------------

這里額外插入一段如何兼容IE10的說明,IE10***的預覽版也已經支持了IndexedDB,和window.webkitIndexedDB和window.mozIndexedDB類似,IE10中對應的變量名為window.msIndexedDB,所以,相兼容IE,把上面***部分的代碼改為:

  1. if ('webkitIndexedDB' in window) {  
  2.     window.indexedDB = webkitIndexedDB;  
  3.     window.IDBKeyRange = webkitIDBKeyRange;  
  4.     windowwindow.IDBTransaction = window.webkitIDBTransaction;  
  5. }  
  6. else if ('mozIndexedDB' in window) {  
  7.     window.indexedDB = mozIndexedDB;  
  8. }  
  9. else if ('msIndexedDB' in window) {  
  10.     window.indexedDB = msIndexedDB;  

即可。下面的“全兼容”的例子已經用到了這段代碼。

---------------- 兼容IE的分割線 ---------------

這樣,我們就完成了不同內核不同版本下的“全兼容”。

還記得上一篇文章中的demo嗎?我通過上面的兼容方法,對這個例子做了進一步的兼容性處理和接口封裝,得到了另一個demo:

DEMO演示鏈接 (firefox/chrome/maxthon)

至此,IndexedDB技術介紹告一段落。我們先后介紹了基本原理、接口定義、并通過一個簡單的例子,進行了gecko/webkit內核下的新舊規范的兼容和適配,希望諸位看過之后有所收獲。IndexedDB的用途和用法還有很多,在此不一一列舉,大家可以在W3C的官方文檔中繼續研究和探索。

【系列文章】

  1. IndexedDB的JS接口設計詳解
  2. 淺析IndexedDB存數結構
  3. 調試IndexedDB應用程序
  4. 基于Firefox 10的IndexedDB實例演示

原文:http://bulaoge.net/user.blg?dmn=g3g4&cid=90094

責任編輯:陳貽新 來源: 趙錦江的博客
相關推薦

2009-12-31 15:08:22

Silverlight

2010-08-11 13:35:10

JavaScriptCSS

2010-09-15 09:43:24

Javascript瀏覽器兼容

2009-04-02 18:06:27

Vmwareesx虛擬化

2009-12-23 08:49:21

Windows 7UAC兼容性

2010-05-28 11:14:38

2013-09-09 16:46:38

Webkit內核

2012-09-05 11:09:15

SELinux操作系統

2010-09-16 13:48:15

CSS Hack

2010-09-01 15:16:47

CSSIEFirefox

2010-09-02 09:21:45

CSS兼容

2010-10-09 13:07:51

Javascript兼容

2021-10-21 06:21:16

兼容性

2010-12-27 09:46:16

Windows 7IE8兼容

2010-08-30 15:40:31

CSS瀏覽器兼容

2017-10-17 09:21:06

2016-09-18 20:48:21

蘋果safari瀏覽器

2013-03-18 14:00:57

高德央視315

2025-02-27 00:00:55

Dubbo服務不兼容

2010-08-17 15:33:28

CSS兼容IE7IE8
點贊
收藏

51CTO技術棧公眾號

国产手机视频一区二区| 116极品美女视频在线观看| 97超级碰碰人国产在线观看| 亚洲第一免费播放区| 亚洲片在线资源| 中文字幕亚洲专区| 亚洲欧美国产一本综合首页| x99av成人免费| 国内免费久久久久久久久久久| 国产成人一区二区三区电影| 成人免费淫片aa视频免费| 国产欧美精品在线播放| 黑人中文字幕一区二区三区| 亚洲欧洲精品一区二区| 欧美色图另类小说| 国产黄色影视| 调教视频在线观看| 手机在线免费观看av| 成人黄页网站视频| 91精品国产自产拍在线观看蜜| 欧美午夜影院| 丁香激情综合国产| 国产精品久久久久久久久久免费看| 亚洲精品综合在线| 欧美一区二区三区免费观看视频 | 国产成人免费精品| 永久免费精品视频| 亚洲美女91| 99riav一区二区三区| 日韩中文字在线| 日本无删减在线| 欧美精品久久久久久久自慰| 色大师av一区二区三区| 国产精品丝袜久久久久久消防器材| 国产三级免费观看| 日韩另类视频| 日本欧美高清| 香蕉精品999视频一区二区 | 天堂中文在线8| 久久77777| av成人免费| 国产999精品在线观看| 亚洲成人五区| 视频福利一区| 免费成人美女在线观看| 福利一区福利二区| 性做久久久久久久免费看| 日韩精品在线看片z| 91精品国产综合久久久久久丝袜| 成人av番号网| a级黄色一级片| 天天干夜夜干| 91亚洲视频| 日本不卡一区二区三区高清视频| 国产欧美一区二区三区沐欲 | 亚洲香蕉伊综合在人在线视看| 国产日韩欧美日韩大片| 午夜影院在线| 欧美激情网址| 久久综合色一综合色88| 久久精品国产欧美激情| 一区二区精品在线观看| 成人免费无遮挡| 亚洲人成毛片在线播放女女| 2023国产精品| 亚洲男人的天堂在线| 91精品在线播放| 成人淫片免费视频95视频| 亚洲天堂1区| 99精品中文字幕在线不卡| 国产欧美在线| 这里只有精品丝袜| 免费h精品视频在线播放| 可播放的18gay1069| 粉嫩一区二区三区在线观看| 午夜一区不卡| 51精品国自产在线| 欧美一级日本a级v片| 中文字幕在线观| 欧美日韩第二页| 成人在线免费观看黄色| 999精品色在线播放| 亚洲免费观看在线视频| 日韩三级成人av网| 国产一区 在线播放| 福利一区二区| 成人avav在线| 欧美男插女视频| 精品一区二区中文字幕| 日韩一二三区| 麻豆免费看一区二区三区| 精品少妇v888av| 手机视频在线观看| 欧美亚洲tv| 同产精品九九九| 欧美精品七区| 日本成人在线网站| 午夜一区二区三区视频| 精品伦理一区二区三区 | 中日韩脚交footjobhd| 国产一区不卡在线| 国产亚洲人成a一在线v站| 九色成人在线| 欧美激情aⅴ一区二区三区| 欧美日韩一区三区| 午夜激情av在线| 99国产精品久久久久久久成人热| 色欧美日韩亚洲| 亚洲永久免费观看| 老司机精品影院| 国产91高潮流白浆在线麻豆| 97在线免费视频| 黄色片在线播放| 精品国产一区二区三区成人影院 | 男女啪啪免费视频网站| 九九综合久久| 亚洲第一视频网| 亚洲一区在线不卡| 国产美女精品一区二区三区| 成人免费91在线看| 成人激情在线播放| 日本一级理论片在线大全| 91免费视频网| 成人h视频在线观看| 国产成人久久精品一区二区三区| 欧美丝袜美女中出在线| 131美女爱做视频| 中文字幕免费一区二区三区| 成人97在线观看视频| 青青影院在线观看| 亚洲第一福利一区| 今天免费高清在线观看国语| 国产日产精品_国产精品毛片| 亚洲成人网av| 蜜桃免费在线| 亚洲色图.com| 日韩av播放器| 欧美暴力喷水在线| 在线观看91视频| 欧美精品欧美精品| а√资源新版在线天堂| 精品亚洲国产成人av制服丝袜| 亚洲国产精品久久| 午夜男人视频在线观看| 日韩精品一二三| 欧美另类极品videosbest最新版本 | 超碰在线首页| 国产精品国产馆在线真实露脸| 少妇高潮喷水在线观看| 狠狠色2019综合网| 亚洲午夜精品久久| 一区二区三区四区日韩| 国产在线观看精品一区二区三区| 成人黄色av网址| 日韩av手机在线看| 亚洲在线观看| 国产精品日韩高清| 欧美不卡视频| 久久成人人人人精品欧| 超碰在线94| 国产精品自产自拍| 国产凹凸在线观看一区二区| 亚洲一区二区三区涩| 欧美日韩国产综合网| 成人精品一区二区三区| 久久综合电影| 国产精品天天狠天天看| 国产成人影院| 久久本道综合色狠狠五月| 开心激情综合| 国产拍精品一二三| 噜噜噜天天躁狠狠躁夜夜精品 | 精品国产欧美成人夜夜嗨| 精品久久久久中文字幕小说| 欧美videos大乳护士334| 日韩成人在线看| 欧美激情视频网站| 爱爱精品视频| 国产成人91久久精品| 你懂的一区二区三区| 国产日韩av在线播放| 亚洲人成久久| 91麻豆天美传媒在线| 国产精品女主播av| jizz亚洲| 97精品免费视频| 欧洲杯足球赛直播| 国产伦精品一区二区三毛| 激情综合中文娱乐网| 亚洲自拍的二区三区| 91蜜桃免费观看视频| 国产农村av| 3d动漫精品啪啪1区2区免费 | 亚洲每日在线| 欧美两根一起进3p做受视频| 日韩一级片网址| 麻豆av在线免费观看| 在线亚洲精品福利网址导航| 在线国产网址| 中文字幕av不卡|