亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > HTML5本地存儲之IndexedDB

HTML5本地存儲之IndexedDB

熱門標簽:聯(lián)通400電話申請 飛亞外呼系統(tǒng) 電視購物電銷外呼系統(tǒng) 電話機器人如何 高德地圖標注賓館位置 杭州營銷電銷機器人供應商 貸款電銷人工和機器人哪個好 百應電銷機器人產(chǎn)業(yè) 西寧智能外呼系統(tǒng)加盟

IndexedDB 是一種低級API,用于客戶端存儲大量結(jié)構(gòu)化數(shù)據(jù)(包括, 文件/ blobs)。該API使用索引來實現(xiàn)對該數(shù)據(jù)的高性能搜索。

最近有一項業(yè)務需求,就是可以離線存儲數(shù)據(jù),等到有網(wǎng)絡信號的時候可以上傳表單和圖片。所以研究了一下HTML5的IndexedDB。

對于只存儲某些字段的需求來說,可以使用Local Storage和 Session Storage來完成。但是一旦存儲大量的數(shù)據(jù),Local Storage和 Session Storage就遠遠不能滿足需求了。這時,IndexedDB的強大之處就會體現(xiàn)出來了。

1、創(chuàng)建或者打開數(shù)據(jù)庫

/* 對不同瀏覽器的indexedDB進行兼容 */
const indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
/* 創(chuàng)建或連接數(shù)據(jù)庫 */
const request = indexeddb.open(name, version);  // name:數(shù)據(jù)庫名,version:數(shù)據(jù)庫版本號

因為indexedDB在不同的瀏覽器上有兼容性,所以我們需要些一個兼容函數(shù)來兼容indexedDB。

2、連接到數(shù)據(jù)庫的回調(diào)函數(shù)

request.addEventListener('success', function(event){ 
    // 打開或創(chuàng)建數(shù)據(jù)庫成功
}, false);
request.addEventListener('error', function(event){ 
    // 打開或創(chuàng)建數(shù)據(jù)庫失敗
}, false);
request.addEventListener('upgradeneeded', function(event){ 
    // 更新數(shù)據(jù)庫時執(zhí)行
}, false);

在連接到數(shù)據(jù)庫后,request會監(jiān)聽三種狀態(tài):

  • success:打開或創(chuàng)建數(shù)據(jù)庫成功
  • error:打開或創(chuàng)建數(shù)據(jù)庫失敗
  • upgradeneeded:更新數(shù)據(jù)庫

upgradeneeded狀態(tài)是在indexedDB創(chuàng)建新的數(shù)據(jù)庫時和indexeddb.open(name, version) version(數(shù)據(jù)庫版本號)發(fā)生變化時才能監(jiān)聽到此狀態(tài)。當版本號不發(fā)生變化時,不會觸發(fā)此狀態(tài)。數(shù)據(jù)庫的ObjectStore的創(chuàng)建、刪除等都是在這個監(jiān)聽事件下執(zhí)行的。

3、創(chuàng)建、刪除ObjectStore

在indexedDB中,ObjectStore類似于數(shù)據(jù)庫的表。

request.addEventListener('upgradeneeded', function(event){ 
    // 創(chuàng)建數(shù)據(jù)庫實例
    const db = event.target.result;
    // 關閉數(shù)據(jù)庫
    db.close();
    // 判斷是否有ObjectStore
    db.objectStoreNames.contains(objectStoreName);
    // 刪除ObjectStore
    db.deleteObjectStore(objectStoreName);
}, false);

可以用如下方法創(chuàng)建一個ObjectStore

request.addEventListener('upgradeneeded', function(event){ 
    // 創(chuàng)建數(shù)據(jù)庫實例
    const db = event.target.result;
    // 判斷是否有ObjectStore
    if(!db.objectStoreNames.contains(objectStoreName)){
        const store = db.createObjectStore(objectStoreName, {
            keyPath: keyPath  // keyPath 作為ObjectStore的搜索關鍵字
        });
        // 為ObjectStore創(chuàng)造索引
        store.createIndex(name,    // 索引
                          index,   // 鍵值
                          {
                              unique: unique  // 索引是否唯一
                          });
    }
}, false);

4、數(shù)據(jù)的增刪改查

request.addEventListener('success', function(event){ 
    // 創(chuàng)建數(shù)據(jù)庫實例
    const db = event.target.result;
    // 查找一個ObjectStore
    db.transaction(objectStoreName, wa);
    // wa為'readwrite'時,數(shù)據(jù)可以讀寫 
    // wa為'readonly'時,數(shù)據(jù)只讀
    const store = transaction.objectStore(objectStoreName);
}, false);

數(shù)據(jù)庫的增刪改查:

// 添加數(shù)據(jù),當關鍵字存在時數(shù)據(jù)不會添加
store.add(obj);
// 更新數(shù)據(jù),當關鍵字存在時覆蓋數(shù)據(jù),不存在時會添加數(shù)據(jù)
store.put(obj);
// 刪除數(shù)據(jù),刪除指定的關鍵字對應的數(shù)據(jù)
store.delete(value);
// 清除ObjectStore
store.clear();
// 查找數(shù)據(jù),根據(jù)關鍵字查找指定的數(shù)據(jù)
const g = store.get(value);
g.addEventListener('success', function(event){
    // 異步查找后的回調(diào)函數(shù)
}, false);

按索引查找數(shù)據(jù)

const index = store.index(indexName);
const cursor = index.openCursor(range);
cursor.addEventListener('success', function(event){
    const result = event.target.result;
    if(result){
        result.value       // 數(shù)據(jù)
        result.continue(); // 迭代,游標下移
    }
}, false);

按索引的范圍查找數(shù)據(jù)

const index = store.index(indexName);
const cursor = index.openCursor(range);
/**
 * range為null時,查找所有數(shù)據(jù)
 * range為指定值時,查找索引滿足該條件的對應的數(shù)據(jù)
 * range為IDBKeyRange對象時,根據(jù)條件查找滿足條件的指定范圍的數(shù)據(jù)
 */
// 大于或大于等于 
range = IDBKeyRange.lowerBound(value, true)   // (value, +∞),>  value
range = IDBKeyRange.lowerBound(value, false)  // [value, +∞),>= value
// 小于或小于等于,isOpen:true,開區(qū)間;false,閉區(qū)間
range = IDBKeyRange.upperBound(value, isOpen)
// 大于或大于等于value1,小于或小于等于value2
IDBKeyRange.bound(value1, value2, isOpen1, isOpen2)

最后,自己封裝了一個indexedDB的庫,可以參考一下:duan602728596/IndexedDB

以上所述是小編給大家介紹的HTML5本地存儲之IndexedDB,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

標簽:邯鄲 撫州 內(nèi)蒙古 安慶 晉中 煙臺 玉溪 牡丹江

巨人網(wǎng)絡通訊聲明:本文標題《HTML5本地存儲之IndexedDB》,本文關鍵詞  HTML5,本地,存儲,之,IndexedDB,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5本地存儲之IndexedDB》相關的同類信息!
  • 本頁收集關于HTML5本地存儲之IndexedDB的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美一级视频高清片| 国产成人精品影视| 你懂的福利视频| 日韩免费在线视频| 免费的黄色小视频| 可以免费看毛片的网站| 日韩在线观看网站| 亚洲天堂免费| 亚洲 男人 天堂| 国产福利免费观看| 韩国毛片 免费| 超级乱淫黄漫画免费| 亚洲 男人 天堂| 999久久狠狠免费精品| 91麻豆精品国产自产在线观看一区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 毛片成人永久免费视频| 日本伦理片网站| 日本免费乱理伦片在线观看2018| 国产综合91天堂亚洲国产| 日韩综合| 日本乱中文字幕系列 | 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产不卡在线观看视频| 日韩中文字幕一区二区不卡| 亚洲女人国产香蕉久久精品| 日本免费乱人伦在线观看| 免费一级生活片| 精品国产三级a| 一 级 黄 中国色 片| 韩国三级香港三级日本三级| 国产高清在线精品一区a| 色综合久久天天综合绕观看| 沈樵在线观看福利| 精品久久久久久免费影院| 精品毛片视频| 一本伊大人香蕉高清在线观看| 免费国产在线观看不卡| 日韩在线观看视频黄| 国产91丝袜在线播放0| 国产精品自拍亚洲| 日本特黄特黄aaaaa大片| 日韩综合| 精品久久久久久中文| 一本伊大人香蕉高清在线观看| 国产网站麻豆精品视频| 九九免费高清在线观看视频| 久久国产精品自线拍免费| 精品国产一区二区三区久 | 国产一区二区精品久久91| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 91麻豆国产| 国产成人精品综合在线| 中文字幕Aⅴ资源网| 欧美α片无限看在线观看免费| 国产综合91天堂亚洲国产| 久久国产精品自线拍免费| a级毛片免费观看网站| 精品在线观看一区| 日本伦理片网站| 国产高清在线精品一区a| 日韩av片免费播放| 久久久久久久免费视频| 沈樵在线观看福利| 欧美一区二区三区在线观看| 青青久在线视频| 日本伦理片网站| 色综合久久天天综线观看| 韩国毛片免费大片| 午夜在线观看视频免费 成人| 国产亚洲精品成人a在线| 精品视频一区二区三区免费| 二级特黄绝大片免费视频大片| 日韩av东京社区男人的天堂| 日本伦理片网站| 亚欧视频在线| 成人免费网站久久久| 国产精品免费久久| 国产不卡福利| 九九免费精品视频| 成人高清视频免费观看| 国产a毛片| 欧美激情影院| 色综合久久天天综合| 成人a级高清视频在线观看| 日韩欧美一二三区| 91麻豆国产级在线| 日韩综合| 国产高清视频免费| 亚欧成人毛片一区二区三区四区| 国产91精品露脸国语对白| 免费一级片在线观看| 日韩综合| 91麻豆国产| 色综合久久手机在线| 亚洲女人国产香蕉久久精品| 国产视频久久久久| 99久久精品国产免费| 午夜激情视频在线观看| 日韩在线观看免费| 天天做日日干| 精品在线观看国产| 可以免费在线看黄的网站| 欧美激情伊人| 四虎影视久久久| 久久99欧美| 韩国三级视频网站| 国产福利免费观看| 日日夜夜婷婷| 99色播| 欧美大片a一级毛片视频| 国产伦久视频免费观看视频| 黄色福利| 日韩在线观看视频黄| 一级女性全黄生活片免费| 亚洲第一页乱| 999精品在线| 久久久成人影院| 四虎久久影院| 欧美大片一区| 国产一区二区精品久久91| a级精品九九九大片免费看| 香蕉视频一级| 国产视频一区在线| 美女免费毛片| 国产福利免费视频| 国产国语对白一级毛片| 亚洲第一页色| 一 级 黄 中国色 片| 国产伦久视频免费观看视频| 你懂的福利视频| 国产91精品一区| 国产网站在线| 欧美激情一区二区三区视频高清| 欧美大片a一级毛片视频| 精品视频在线观看免费| 99久久精品国产免费| 亚洲女人国产香蕉久久精品| 久久国产精品自线拍免费| 日本乱中文字幕系列 | 欧美日本免费| 午夜激情视频在线观看| 精品国产亚洲人成在线| 日韩男人天堂| 国产视频一区二区在线播放| 亚欧乱色一区二区三区| 亚洲精品久久玖玖玖玖| 天天色成人| 成人影院久久久久久影院| 人人干人人草| 91麻豆精品国产片在线观看| 色综合久久天天综合绕观看| 青青青草影院 | 四虎精品在线观看| 韩国三级视频在线观看| 成人a大片在线观看| 日韩在线观看免费完整版视频| 精品视频在线看| 久久国产影视免费精品| 99热精品一区| 韩国三级视频在线观看| 中文字幕一区二区三区精彩视频 | 免费的黄视频| 国产一区二区福利久久| 国产一区免费在线观看| 亚飞与亚基在线观看| 四虎论坛| 欧美激情影院| 免费国产在线观看| 欧美18性精品| 国产一区免费在线观看| 日韩专区在线播放| 麻豆网站在线免费观看| 国产精品自拍在线观看| 日韩av成人| a级毛片免费全部播放| 亚洲女人国产香蕉久久精品| 青青青草影院| a级黄色毛片免费播放视频| 黄视频网站免费观看| 超级乱淫伦动漫| 国产国语对白一级毛片| 天天色色色| 色综合久久天天综合观看| 人人干人人草| 九九久久国产精品大片| 九九久久国产精品大片| 国产精品自拍亚洲| 可以免费看污视频的网站| 欧美国产日韩久久久| 麻豆系列国产剧在线观看| 日韩综合| 久久精品成人一区二区三区| 99热热久久| 成人在免费观看视频国产| 成人免费高清视频| 国产麻豆精品免费密入口| 91麻豆精品国产综合久久久| 久久久久久久网| 色综合久久天天综合观看|