日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

浏览器数据库IndexedDB

發布時間:2023/12/14 HTML 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浏览器数据库IndexedDB 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

隨著瀏覽器的功能不斷增強,越來越多的網站開始考慮,將大量數據儲存在客戶端,這樣可以減少從服務器獲取數據,直接從本地獲取數據。

Cookie 的大小不超過4KB,且每次請求都會發送回服務器;

LocalStorage 在 2.5MB 到 10MB 之間(各家瀏覽器不同),而且不提供搜索功能,不能建立自定義的索引。

所以,需要一種新的解決方案,這就是 IndexedDB 誕生的背景。

IndexedDB 就是瀏覽器提供的本地數據庫,它可以被網頁腳本創建和操作。IndexedDB 允許儲存大量數據,提供查找接口,還能建立索引,就數據庫類型而言,IndexedDB 不屬于關系型數據庫(不支持 SQL 查詢語句)。

indexedDB具有以下特點
  • 鍵值對存儲。IndexedDB內部采用對象倉庫(object store)存放數據,所有類型的數據都可以直接存入,包括JavaScript對象。對象倉庫中,數據以“鍵值對”的形式保存,每一個數據記錄都有對應的主鍵,主鍵是獨一無二的,不能有重復,否則會報錯。
  • 異步。IndexedDB操作時不會鎖死瀏覽器,用戶依然可以進行其他操作,但LocalStorage的操作是同步的。異步設計是為了防止大量數據的讀寫,拖慢網頁的表現。
  • 支持事務。IndexedDB支持事務,所以一系列操作步驟中,只要有一步失敗,這個事務就都取消,數據庫回滾到事務發生之前的狀態。
  • 同源限制。IndexedDB受到同源限制,每一個數據庫對應創建他們的域名。網頁只能訪問自身名下的數據庫,二不能訪問跨域的數據庫。
  • 儲存空間大。一般來說不少于250MB,甚至沒有上限。
  • 支持二進制儲存。IndexedDB不僅可以存儲字符串,還可以儲存二進制數據。
  • 基本概念

    IndexedDB是一個比較復雜的API,它把不同的實體,抽象成一個個對象接口。

    • 數據庫:IDBDatabase 對象
    • 對象倉庫:IDNObjectStore 對象
    • 索引:IDBIndex 對象
    • 事務:IDBTransaction 對象
    • 操作請示:IDBRequest 對象
    • 指針:IDBCursor 對象
    • 主鍵集合:IDBKeyRange 對象
    數據庫

    數據庫是一系列相關數據的容器。每個域名(協議+域名+端口號)都可以新建任意多個數據庫。

    IndexedDB數據庫有版本的概念。同一個時刻,只能有一個版本的數據庫存在。如果要修改數據庫結構(新增或刪除表、索引或者主鍵),只能通過升級數據庫版本完成。

    對象倉庫

    每個數據庫包含若干個對象倉庫(object store)。它類似于關系型數據庫的表格。

    數據記錄

    對象倉庫保存的是數據記錄。每條記錄類似于關系型數據庫的行,但是只有主鍵和數據體兩部分。主鍵用來建立默認的索引,必須是不同的,否則會報錯。主鍵可以是數據記錄里面的一個屬性,也可以指定為一個遞增的整數編號。

    { id: 1, text: 'foo' }

    上面的對象中,id屬性可以當作主鍵。

    數據體可以是任意數據類型,不限于對象。

    索引

    為了加速數據的檢索,可以在對象倉庫里面,為不同的屬性建立索引。

    事務

    數據記錄的讀寫和刪改,都要通過事務完成。事務對象提供error、abort和complete三個事件,用來監聽操作結果。

    操作流程

    打開數據庫:indexedDB.open()
    var request = window.indexedDB.open(databaseName, version);

    這個方法接受兩個參數,第一個參數是字符串,表示數據庫的名字。如果指定的數據庫不存在,就會新建數據庫。第二個參數是整數,表示數據庫的版本。如果省略,打開已有數據庫時,默認為當前版本;新建數據庫時,默認為1。

    indexedDB.open()方法返回一個 IDBRequest 對象。這個對象通過三種事件error、success、upgradeneeded,處理打開數據庫的操作結果。

    (1)error 事件

    error事件表示打開數據庫失敗。

    request.onerror = function (event) {console.log('數據庫打開報錯'); };

    (2)success 事件

    success事件表示成功打開數據庫。

    var db;request.onsuccess = function (event) {db = request.result;console.log('數據庫打開成功'); };

    (3)upgradeneeded 事件

    如果指定的版本號,大于數據庫的實際版本號,就會發生數據庫升級事件upgradeneeded。

    var db;request.onupgradeneeded = function (event) {db = event.target.result; }

    這時通過事件對象的target.result屬性,拿到數據庫實例。

    新建數據庫

    新建數據庫與打開數據庫是同一個操作。如果指定的數據庫不存在,就會新建。不同之處在于,后續的操作主要在upgradeneeded事件的監聽函數里面完成,因為這時版本從無到有,所以會觸發這個事件。

    通常,新建數據庫以后,第一件事是新建對象倉庫(即新建表)。

    request.onupgradeneeded = function(event) {db = event.target.result;var objectStore = db.createObjectStore('person', { keyPath: 'id' }); }

    上面代碼中,數據庫新建成功以后,新增一張叫做person的表格,主鍵是id。

    新建對象倉庫以后,下一步可以新建索引。

    request.onupgradeneeded = function(event) {db = event.target.result;var objectStore = db.createObjectStore('person', { keyPath: 'id' });objectStore.createIndex('name', 'name', { unique: false });objectStore.createIndex('email', 'email', { unique: true }); }

    上面代碼中,IDBObject.createIndex()的三個參數分別為索引名稱、索引所在的屬性、配置對象(說明該屬性是否包含重復的值)。

    新增數據

    新增數據指的是向對象倉庫寫入數據記錄。通過事務完成。

    function add() {var request = db.transaction(['person'], 'readwrite').objectStore('person').add({ id: 1, name: '張三', age: 24, email: 'zhangsan@example.com' });request.onsuccess = function (event) {console.log('數據寫入成功');};request.onerror = function (event) {console.log('數據寫入失敗');} }add();

    上面代碼中,寫入數據需要新建一個事務。新建時必須指定表格名稱和操作模式(“只讀”或“讀寫”)。新建事務以后,通過IDBTransaction.objectStore(name)方法,拿到 IDBObjectStore 對象,再通過表格對象的add()方法,向表格寫入一條記錄。

    寫入操作是一個異步操作,通過監聽連接對象的success事件和error事件,了解是否寫入成功。

    讀取數據

    讀取數據也是通過事務完成。

    function read() {var transaction = db.transaction(['person']);var objectStore = transaction.objectStore('person');var request = objectStore.get(1);// 用于讀取數據,參數是主鍵的值request.onerror = function(event) {console.log('事務失敗');};request.onsuccess = function( event) {if (request.result) {console.log('Name: ' + request.result.name);console.log('Age: ' + request.result.age);console.log('Email: ' + request.result.email);} else {console.log('未獲得數據記錄');}}; }read();
    遍歷數據

    遍歷數據表格的所有記錄,要使用指針對象 IDBCursor。

    function readAll() {var objectStore = db.transaction('person').objectStore('person');objectStore.openCursor().onsuccess = function (event) {var cursor = event.target.result;if (cursor) {console.log('Id: ' + cursor.key);console.log('Name: ' + cursor.value.name);console.log('Age: ' + cursor.value.age);console.log('Email: ' + cursor.value.email);cursor.continue();} else {console.log('沒有更多數據了!');}}; }readAll();

    上面代碼中,新建指針對象的openCursor()方法是一個異步操作,所以要監聽success事件。

    更新數據

    更新數據要使用IDBObject.put()方法。

    function update() {var request = db.transaction(['person'], 'readwrite').objectStore('person').put({ id: 1, name: '李四', age: 35, email: 'lisi@example.com' });request.onsuccess = function (event) {console.log('數據更新成功');};request.onerror = function (event) {console.log('數據更新失敗');} }update();

    上面代碼中,put()方法自動更新了主鍵為1的記錄。

    刪除數據

    IDBObjectStore.delete()方法用于刪除記錄。

    function remove() {var request = db.transaction(['person'], 'readwrite').objectStore('person').delete(1);request.onsuccess = function (event) {console.log('數據刪除成功');}; }remove();
    使用索引

    索引的意義在于,可以讓你搜索任意字段,也就是說從任意字段拿到數據記錄。如果不建立索引,默認只能搜索主鍵(即從主鍵取值)。

    假定新建表格的時候,對name字段建立了索引。

    objectStore.createIndex('name', 'name', { unique: false });

    現在,就可以從name找到對應的數據記錄了。

    var transaction = db.transaction(['person'], 'readonly'); var store = transaction.objectStore('person'); var index = store.index('name'); var request = index.get('李四');request.onsuccess = function (e) {var result = e.target.result;if (result) {// ...} else {// ...} }

    IndexedDB對象

    indexedDB.open():打開數據庫

    indexedDB.open()方法用于打開數據庫。這是一個異步操作,但是會立刻返回一個IDBOpenDBRequest對象。

    var openRequest = window.indexedDB.open('test', 1);

    上面代碼表示,打開一個名為test、版本為1的數據庫。如果該數據庫不存在,則會新建該數據庫。

    open()方法的第一個參數是數據庫名稱,格式為字符串,不可省略;第二個參數是數據庫版本,是一個大于0的正整數(0將報錯),如果該參數大于當前版本,會觸發數據庫升級。第二個參數可省略,如果數據庫已存在,將打開當前版本的數據庫;如果數據庫不存在,將創建該版本的數據庫,默認版本為1。

    打開數據庫是異步操作,通過各種事件通知客戶端。下面是有可能觸發的4種事件。

    • success:打開成功。
    • error:打開失敗。
    • upgradeneeded:第一次打開該數據庫,或者數據庫版本發生變化。
    • blocked:上一次的數據庫連接還未關閉。

    第一次打開數據庫時,會先觸發upgradeneeded事件,然后觸發success事件。

    根據不同的需要,對上面4種事件監聽函數。

    indexedDB.deleteDatabase():刪除數據庫

    indexedDB.deleteDatabase()方法用于刪除一個數據庫,參數為數據庫的名字。它會立刻返回一個IDBOpenDBRequest對象,然后對數據庫執行異步刪除。刪除操作的結果會通過事件通知,IDBOpenDBRequest對象可以監聽以下事件。

    • success:刪除成功
    • error:刪除報錯

    調用deleteDatabase()方法以后,當前數據庫的其他已經打開的連接都會接收到versionchange事件。

    注意,刪除不存在的數據庫并不會報錯。

    indexedDB.cmp():比較兩個值是否為IndexedDB的相同的主鍵

    indexedDB.cmp()方法比較兩個值是否為 indexedDB 的相同的主鍵。它返回一個整數,表示比較的結果:0表示相同,1表示第一個主鍵大于第二個主鍵,-1表示第一個主鍵小于第二個主鍵。

    window.indexedDB.cmp(1, 2) // -1

    注意,這個方法不能用來比較任意的 JavaScript 值。如果參數是布爾值或對象,它會報錯。

    window.indexedDB.cmp(1, true) // 報錯 window.indexedDB.cmp({}, {}) // 報錯

    IDBRequest 對象:表示打開的數據庫連接

    indexedDB.open()方法和indexedDB.deleteDatabase()方法會返回這個對象。數據庫的操作都是通過這個對象完成的。

    這個對象的所有操作都是異步操作,要通過readyState屬性判斷是否完成,如果為pending就表示操作正在進行,如果為done就表示操作完成,可能成功也可能失敗。

    操作完成以后,觸發success事件或error事件,這時可以通過result屬性和error屬性拿到操作結果。如果在pending階段,就去讀取這兩個屬性,是會報錯的。

    屬性

    Iquest.readyState

    :等于pending表示操作正在進行,等于done表示操作正在完成。

    IDBRequest.result

    :返回請求的結果。如果請求失敗、結果不可用,讀取該屬性會報錯。

    IDBRequest.error

    :請求失敗時,返回錯誤對象。

    IDBRequest.source

    :返回請求的來源(比如索引對象或 ObjectStore)。

    IDBRequest.transaction

    :返回當前請求正在進行的事務,如果不包含事務,返回null。

    IDBRequest.onsuccess

    :指定success事件的監聽函數。

    IDBRequest.onerror

    :指定error事件的監聽函數。

    IDBOpenDBRequest 對象繼承了 IDBRequest 對象,提供了兩個額外的事件監聽屬性。

    IDBOpenDBRequest.onblocked

    :指定blocked事件(upgradeneeded事件觸發時,數據庫仍然在使用)的監聽函數。

    IDBOpenDBRequest.onupgradeneeded

    :upgradeneeded事件的監聽函數。

    IDBDatabase對象:表示連接的數據庫

    打開數據成功后,可以從IDBOpenDBRequest對象的result屬性上面,拿到一個IDBDatabase對象。后面的數據庫操作都是通過這個對象完成。

    屬性

    IDBDatabase.name

    :string,數據庫名稱。

    IDBDatabase.version

    :int,數據庫版本。數據庫第一次創建時,該屬性為空字符串。

    IDBDatabase.objectStoreNames

    :DOMStringList對象(字符串的集合),包含當前時間的所有object store的名字。

    IDBDatabase.onabort

    :指定abort時間(事務中止)的監聽函數。

    IDBDatabase.onclose

    :指定close時間(數據庫意外關閉)的監聽函數。

    IDBDatabase.onerror

    :指定error時間(訪問數據庫失敗)的監聽函數。

    IDBDatabase.onversionchange

    :數據庫版本發生變化時觸發(發生upgradeneeded事件,或調用indexedDB.deleteDatabase())。

    方法

    IDBDatabase對象有以下方法。

    IDBDatabase.close()

    :關閉數據庫連接,實際會等所有事務完成后再關閉。

    IDBDatabase.createObjectStore()

    :創建存放數據的對象倉庫,類似于傳統關系型數據庫的表格,返回一個IDBObjectStore對象,該方法只能在versionchange事件監聽函數中調用。

    IDBDatabase.transaction()

    :返回一個IDBTransaction事務對象。

    IDBObjectStore對象

    IDBObjectStore對象對應一個對象倉庫。IDBDatabase.createObjectStore()方法返回的就是一個IDBObjectStore對象。

    IDBDatabase對象的transaction()返回一個事務對象,該方法的objectStore()方法返回一個IDBObjectStore對象。

    屬性

    IDBObjectStore.indexNames

    :返回一個類似數組的對象(DOMStringList),包含了當前對象倉庫的所有索引。

    IDBObjectStore.keyPath

    :返回當前對象倉庫的主鍵。

    IDBObjectStore.name

    :返回當前對象倉庫的名稱。

    IDBObjectStore.transaction

    :返回當前對象倉庫所屬的事務對象。

    IDBObjectStore.autoIncrement

    :布爾值,表示主鍵是否會自動遞增。

    方法

    IDBObjectStore.add()

    用于向對象倉庫添加數據,返回一個IDBRequest對象。該方法只用于添加數據,如果主鍵相同會報錯,因此更新數據必須用put()方法。

    該方法接受兩個參數,第一個參數是鍵值,第二個參數是主鍵,該參數可選,如果省略默認為null。

    創建事務以后,就可以獲取對象倉庫,然后使用add()方法往里面添加數據了。

    IDBObjectStore.put()

    用于更新某個主鍵對應的數據記錄,如果對應的鍵值不存在,則插入一條新的記錄。還方法返回一個IDBRequest對象。

    該方法接受兩個參數,第一個參數為新數據,第二個參數為主鍵,該參數可選,且只在自動遞增時才有必要提供,因為那時主鍵不包含在數據值里面。

    IDBObjectStore.clear()

    刪除當前倉庫對象的所有記錄。該方法返回一個IDBRequest對象。

    IDBObjectStore.delete()

    用于刪除指定主鍵的記錄。該方法返回一個IDBRequest對象。

    該方法的參數為主鍵的值。

    IDBObjectStore.count()

    用于計算記錄的數量。該方法返回一個IDBRequest對象。

    不帶參數時,該方法返回當前對象倉庫的所有記錄數量。如果主鍵或 IDBKeyRange 對象作為參數,則返回對應的記錄數量。

    IDBObjectStore.getKey()

    用于獲取主鍵。該方法返回一個 IDBRequest 對象。

    該方法的參數可以是主鍵值或 IDBKeyRange 對象。

    IDBObjectStore.get()

    用于獲取主鍵對應的數據記錄。該方法返回一個 IDBRequest 對象。

    get()是異步方法,讀取成功以后,只能在success事件的監聽函數中處理數據。

    IDBObjectStore.getAll()

    用于獲取對象倉庫的記錄。該方法返回一個 IDBRequest 對象。

    IDBObjectStore.getAllKeys()

    用于獲取所有符合條件的主鍵。該方法返回一個 IDBRequest 對象。

    IDBObjectStore.index()

    返回指定名稱的索引對象 IDBIndex。

    有了索引以后,就可以針對索引所在的屬性讀取數據。

    IDBObjectStore.createIndex()

    用于新建當前數據庫的一個索引。該方法只能在VersionChange監聽函數里面調用。

    objectStore.createIndex(indexName, keyPath, objectParameters)

    該方法可以接受三個參數。

    • indexName:索引名
    • keyPath:主鍵
    • objectParameters:配置對象(可選)

    第三個參數可以配置以下屬性。

    • unique:如果設為true,將不允許重復的值
    • multiEntry:如果設為true,對于有多個值的主鍵數組,每個值將在索引里面新建一個條目,否則主鍵數組對應一個條目。
    IDBObjectStore.deleteIndex()

    用于獲取一個指針對象。

    指針對象可以用來遍歷數據。該對象也是異步的,有自己的success和error事件,可以對它們指定監聽函數。

    var t = db.transaction(['test'], 'readonly'); var store = t.objectStore('test');var cursor = store.openCursor();cursor.onsuccess = function (event) {var res = event.target.result;if (res) {console.log('Key', res.key);console.dir('Data', res.value);res.continue();} }

    監聽函數接受一個事件對象作為參數,該對象的target.result屬性指向當前數據記錄。該記錄的key和value分別返回主鍵和鍵值(即實際存入的數據)。continue()方法將光標移到下一個數據對象,如果當前數據對象已經是最后一個數據了,則光標指向null。

    openCursor()方法的第一個參數是主鍵值,或者一個 IDBKeyRange 對象。如果指定該參數,將只處理包含指定主鍵的記錄;如果省略,將處理所有的記錄。該方法還可以接受第二個參數,表示遍歷方向,默認值為next,其他可能的值為prev、nextunique和prevunique。后兩個值表示如果遇到重復值,會自動跳過。

    IDBObjectStore.openKeyCursor()

    用于獲取一個主鍵指針對象。

    IDBTransaction 對象

    IDBTransaction 對象用來異步操作數據庫事務,所有的讀寫操作都要通過這個對象進行。

    IDBDatabase.transaction()方法返回的就是一個 IDBTransaction 對象。

    事務的執行順序是按照創建的順序,而不是發出請求的順序。

    事務有可能失敗,只有監聽到事務的complete事件,才能保證事務操作成功。

    屬性

    IDBTransaction.db

    :返回當前事務所在的數據庫對象IDBDatabase。

    IDBTransaction.error

    :返回當前事務的錯誤。如果事務沒有結束,或者事務成功結束,或者被手動終止,該方法返回null。

    IDBTransaction.mode

    :返回當前事務的模式,默認是readonly,另一個值是readwrite。

    IDBTransaction.objectStoreNames

    :返回一個類似數組的對象DOMStringList,成員是當前事務涉及的對象倉庫的名字。

    IDBTransaction.onabort

    :指定abort事件(事務中斷)的監聽函數。

    IDBTransaction.oncomplete

    :指定complete事件(事務成功)的監聽函數。

    IDBTransaction.onerror

    :指定error事件(事務失敗)的監聽事件。

    方法

    IDBTransaction.abort()

    :終止當前事務,回滾所有已經進行的變更。

    IDBTransaction.objectStore(name)

    :返回指定名稱的對象倉庫IDBObjectStore。

    IDBIndex對象

    IDBIndex對象代表數據庫的索引,通過這個對象可以獲取數據庫里面的記錄。數據記錄的主鍵默認就是帶有索引,IDBIndex對象主要用于通過除主鍵外的其他鍵,建立索引獲取對象。

    IDBIndex是持久性的鍵值對存儲。只要插入、更新或刪除數據記錄,引用的對象庫中的記錄,索引就會自動更新。

    IDBObjectStore.index()方法可以獲取 IDBIndex 對象。

    屬性

    IDBIndex.name

    :string,索引的名稱。

    IDBIndex.objectStore

    :索引所在的對象倉庫。

    IDBIndex.keyPath

    :索引的主鍵。

    IDBIndex.multiEntry

    :Boolean,表示創建索引時是否允許相同的主鍵。

    方法

    都是異步方法,立即返回的都是一個IDBRequest對象。

    IDBIndex.count()

    用來獲取記錄的數量。可以直接接受主鍵或IDBKeyRange對象作為參賽,這時只返回符合主鍵的記錄數量,否則返回所有記錄的數量。

    IDBIndex.get(key)

    用來獲取符合指定主鍵的數據記錄。

    IDBIndex.getKey(key)

    用來獲取指定的主鍵。

    IDBIndex,getAll()

    用來獲取所有的數據記錄。可以接受兩個參數,都是可選的,第一個參數用來指定主鍵,第二個參數用來指定返回記錄的數量。如果省略這兩個參數,則返回所有記錄。由于獲取成功時,瀏覽器必須生成所有對象,所以對性能有影響。如果數據集比較大,建議使用IDBCursor對象。

    IDBIndex.getAllKeys()

    與IDBIndex.getAll()相似,區別是獲取所有主鍵。

    IDBIndex.openCursor()

    用來獲取一個IDBCursor對象,用來遍歷索引里面的所有條目。

    IDBIndex.openKeyCursor()

    與IDBIndex.openCursor()相似,區別是遍歷所有條目的主鍵。

    IDBCursor對象

    IDBCursor 對象代表指針對象,用來遍歷數據倉庫(IDBObjectStore)或索引(IDBIndex)的記錄。

    IDBCursor 對象一般通過IDBObjectStore.openCursor()方法獲得。

    屬性

    IDBCursor.source

    :返回正在遍歷的對象倉庫或索引。

    IDBCursor.direction

    :string,表示指針遍歷的方向。

    共有四個可能的值:

    • next(從頭開始向后遍歷)、
    • nextunique(從頭開始向后遍歷,重復的值只遍歷一次)、
    • prev(從尾部開始向前遍歷)、
    • prevunique(從尾部開始向前遍歷,重復的值只遍歷一次)。

    該屬性通過IDBObjectStore.openCursor()方法的第二個參數指定,一旦指定就不能改變了。

    IDBCursor.key

    返回當前記錄的主鍵。

    IDBCursor.value

    返回當前記錄的數據值。

    IDBCursor.primaryKey

    返回當前記錄的主鍵。

    對于數據倉庫(ObjectStore)來說,這個屬性等同于IDBCursor.key;對于索引,IDBCursor.key返回索引的位置值,該屬性返回數據記錄的主鍵。

    方法

    IDBCursor.advance(n)

    指針向前移動n個位置。

    IDBCursor.continue()

    指針先前移動一個位置。

    可以接受一個主鍵作為參數,這時會跳轉到這個主鍵。

    IDBCursor.continuePrimaryKey()

    需要兩個參數,第一個是key,第二個是primaryKey,將指針移到符合這兩個參數的位置。

    IDBCursor.delete()

    用來刪除當前位置的記錄,返回一個IDBRequest對象。該方法不會改變指針的位置。

    IDBCursor.update()

    用來更新當前位置的記錄,返回一個IDBRequest對象。參數是要寫入數據庫的新的值。

    IDBKeyRange對象

    IDBKeyRange 對象代表數據倉庫(object store)里面的一組主鍵。根據這組主鍵,可以獲取數據倉庫或索引里面的一組記錄。

    IDBKeyRange 可以只包含一個值,也可以指定上限和下限。它有四個靜態方法,用來指定主鍵的范圍。

    • IDBKeyRange.lowerBound():指定下限。
    • IDBKeyRange.upperBound():指定上限。
    • IDBKeyRange.bound():同時指定上下限。
    • IDBKeyRange.only():指定只包含一個值。

    IDBKeyRange.lowerBound()、IDBKeyRange.upperBound()、IDBKeyRange.bound()這三個方法默認包括端點值,可以傳入一個布爾值,修改這個屬性。

    屬性

    都為只讀屬性

    IDBKeyRange.lower

    :返回下限

    IDBKeyRange.lowerOpen

    :Boolean,表示下限是否為開區間。

    IDBKeyRange.upper

    :返回上限

    IDBKeyRange.upperOpen

    :Boolean,表示上限是否為開區間。

    方法

    IDBKeyRange.includes(key)

    :返回一個布爾值,表示某個主鍵是否包含在當前這個主鍵組之內。

    總結

    以上是生活随笔為你收集整理的浏览器数据库IndexedDB的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    亚洲成人免费在线 | 在线观看国产v片 | 国产1区2区3区精品美女 | 天操夜夜操 | 日韩精品免费在线观看视频 | 99久久99久久精品免费 | 日韩欧美一区视频 | 在线电影中文字幕 | 免费黄av | 色综合咪咪久久网 | 日韩欧美在线视频一区二区 | 免费在线观看的av网站 | 丝袜+亚洲+另类+欧美+变态 | 又色又爽的网站 | 夜夜摸夜夜爽 | 九热精品 | 不卡精品视频 | 国产一区二区视频在线 | 天天鲁一鲁摸一摸爽一爽 | 狠狠狠操 | 久久久久久久久久久久久久av | av电影在线观看完整版一区二区 | 国产在线精品国自产拍影院 | 网站在线观看你们懂的 | av网站在线免费观看 | 久久有精品 | 亚洲电影免费 | 久久免费a | 日韩在线免费小视频 | 免费av观看网站 | 日日干激情五月 | 亚洲丁香久久久 | 五月综合 | 亚洲情婷婷 | 五月天久久久久久 | 中文字幕第一 | 色狠狠操 | 亚洲禁18久人片 | 玖玖视频精品 | 国产99精品 | 国产99久久99热这里精品5 | 久久精品亚洲精品国产欧美 | 国产日产精品一区二区三区四区 | 国产精品美女视频 | 久久亚洲精品国产亚洲老地址 | 亚洲成年人免费网站 | 尤物九九久久国产精品的分类 | 亚洲精欧美一区二区精品 | 亚洲国产mv| 天天舔天天搞 | 午夜精品中文字幕 | 国产在线观看地址 | 日韩网站免费观看 | 日韩中文字幕国产精品 | 免费裸体视频网 | 超级碰碰碰视频 | 在线有码中文 | 国产精品美女久久久久久久 | 97在线看片 | 国产露脸91国语对白 | 一区二区三区四区在线免费观看 | 五月婷婷毛片 | 成人免费视频观看 | 日韩电影在线一区二区 | 超碰在线官网 | 久草久草久草久草 | 成人在线观看资源 | 久久国语露脸国产精品电影 | 天天干,天天射,天天操,天天摸 | 国产精品一区二区在线看 | 91av视频网站 | 中文字幕免费一区 | 国产中出在线观看 | 欧美极品xxxxx | 啪啪av在线 | av在线免费网站 | 婷婷激情五月 | 99免费国产 | 日韩精品免费一区二区三区 | 最新真实国产在线视频 | 天天综合人人 | 婷婷色在线 | 成人免费观看av | 免费又黄又爽视频 | 91亚洲精品乱码久久久久久蜜桃 | 国产精品成人自拍 | 欧美一区二区三区在线 | 亚洲精品视频在线播放 | 国产视频一区在线免费观看 | 欧美韩日视频 | 亚洲综合网站在线观看 | 精品亚洲视频在线 | 久久久久国产精品视频 | 美女很黄免费网站 | 亚洲一区二区三区在线看 | 精品一区 在线 | 91天天操 | 色婷婷在线观看视频 | 久99视频| 91看成人 | 日本在线观看黄色 | 日本黄色免费在线观看 | 91视频在线 | 欧美日bb| 国产视频久久久 | 亚洲成av人影院 | 欧美精品天堂 | 日韩免费观看视频 | 亚洲精品国产精品久久99 | 天堂黄色片 | 国产中文字幕视频 | 91亚洲精品国偷拍 | 免费合欢视频成人app | 亚洲 中文 在线 精品 | 亚洲男模gay裸体gay | 韩国av一区二区三区在线观看 | 成人av一区二区兰花在线播放 | 国内精品久久久久久久久久久 | 9i看片成人免费看片 | 欧美日韩一区二区三区不卡 | 日韩在线观看三区 | 国产精品免费在线视频 | 天天干天天干 | 国产一级视频在线观看 | 久久97久久 | 色a在线观看 | 男女视频91 | 亚洲精选久久 | 国产高清不卡 | 久久天天躁夜夜躁狠狠85麻豆 | 久久超碰在线 | 久久婷婷一区 | 久久精品五月 | 国产一级精品视频 | 婷婷av综合 | 国产剧情一区二区在线观看 | av在线观 | 一本色道久久精品 | www最近高清中文国语在线观看 | 中文字幕在线观看网 | 精品国产一区二区三区久久影院 | 综合激情av | 一级a毛片高清视频 | 免费在线观看黄网站 | 国模吧一区 | 亚洲男男gⅴgay双龙 | 蜜臀久久99精品久久久无需会员 | 日本三级吹潮在线 | 综合视频在线 | 日韩成人免费在线 | 天天操狠狠操 | 久久精品一区二区三区四区 | av爱干 | 久久久精品福利视频 | 久久精品一区二区 | 亚洲精品1区2区3区 超碰成人网 | 欧美日韩在线播放一区 | 福利区在线观看 | 日韩大片免费观看 | 国产 欧美 日韩 | 91大神免费在线观看 | 99色在线| 高清精品久久 | 热九九精品 | 麻豆精品传媒视频 | 日韩欧美视频免费观看 | 欧美成人在线免费 | 久久久久亚洲精品成人网小说 | 午夜av免费 | 国产黄色片网站 | 国产久草在线 | 精品高清视频 | 久久99国产精品久久 | 日本三级在线观看中文字 | 国产一级性生活视频 | 成人久久网 | av片中文字幕 | 婷婷性综合 | 亚洲美女精品区人人人人 | 91精品办公室少妇高潮对白 | 久久国产精品99久久久久久老狼 | 精品视频97| 在线观看视频黄 | 干亚洲少妇| 亚洲欧美精品一区二区 | 色婷婷激情电影 | 狠狠干天天操 | 日韩色在线 | 精品久久一区二区三区 | 四虎国产精品免费 | 成人性生交大片免费看中文网站 | av免费网站在线观看 | 久久久久久久毛片 | 国产免费人成xvideos视频 | 久久免费国产电影 | 午夜在线观看一区 | 中文字幕日韩在线播放 | 久久视频国产 | 国产欧美精品一区二区三区 | 国产亚洲精品久久久久久 | 久久免费播放 | 日本久久影视 | 久久成人麻豆午夜电影 | 狠狠操综合| 久久不卡国产精品一区二区 | 欧美日韩一区三区 | 亚洲精品黄网站 | 国产精品第一页在线 | 人人爽人人爽人人 | 日韩美女久久 | 99免费视频 | avove黑丝| 久久婷婷一区二区三区 | 激情 婷婷 | 成人av免费在线播放 | 美女久久精品 | 成年人电影免费看 | 香蕉视频国产在线观看 | 香蕉视频网址 | 日韩精品一区二区三区在线视频 | 伊人狠狠色丁香婷婷综合 | 三级毛片视频 | 黄色日批网站 | 99综合影院在线 | 亚洲另类人人澡 | 午夜12点| 丁香婷婷网 | 免费涩涩网站 | 一区二区三区免费播放 | 18性欧美xxxⅹ性满足 | 美女视频黄频大全免费 | 欧美综合在线视频 | 日本少妇高清做爰视频 | av黄色成人 | 黄av资源| 少妇bbw搡bbbb搡bbb | 欧美日一级片 | 国产爽视频| 麻豆国产在线视频 | 国产精品自在线拍国产 | 99热这里只有精品1 av中文字幕日韩 | 91天堂素人约啪 | 免费国产在线视频 | 九九热av | 久久久免费精品国产一区二区 | 干狠狠| 国产精品乱码高清在线看 | 国产精品自产拍在线观看蜜 | 国内精品免费久久影院 | 91成人精品 | 国产精品网站一区二区三区 | 三级动图| 亚洲激情久久 | 久久影院精品 | 色国产在线 | 亚洲欧美乱综合图片区小说区 | 欧美a免费 | 亚洲国产成人在线播放 | 欧洲精品在线视频 | 久久爽久久爽久久av东京爽 | 99久久久久久久久 | 99色在线| 九九精品久久 | 国产精品av在线免费观看 | 国外调教视频网站 | 久久不卡国产精品一区二区 | 免费看的黄色的网站 | 天天干,狠狠干 | 欧美色插 | 婷婷丁香花 | 亚洲精品国偷拍自产在线观看蜜桃 | 我要看黄色一级片 | 91av九色| 欧美成人按摩 | 少妇bbw搡bbbb搡bbb | 国产亚洲在 | 久草五月 | 在线小视频 | 免费在线黄色av | 成年人免费在线播放 | 国产免费亚洲高清 | 高清av不卡| 伊人婷婷激情 | 色在线视频| 99久久精品久久亚洲精品 | 国产精品99久久免费黑人 | 久久综合福利 | 亚洲视频免费在线 | 国产精品久久久久久久午夜片 | 91免费在线视频 | 欧美日韩在线播放 | 国产成在线观看免费视频 | 欧美国产在线看 | 欧美性网站 | 国产精品久久久777 成人手机在线视频 | 欧美精品一区二区免费 | 九九九在线 | 日韩欧美一区二区三区免费观看 | 激情网第四色 | 亚洲精欧美一区二区精品 | 久久激情婷婷 | 欧美精品久久久久久久 | 美女福利视频一区二区 | 中文字幕日韩精品有码视频 | 500部大龄熟乱视频 欧美日本三级 | 欧美激情精品久久久久久免费印度 | 国产香蕉97碰碰久久人人 | 伊人天天综合 | 六月天色婷婷 | 国内精品久久久久久中文字幕 | 人人干人人干人人干 | 一区二区三区在线免费观看视频 | 精品在线观看视频 | 激情网在线视频 | 国产精久久久 | 久久伊人精品一区二区三区 | 久久99九九99精品 | 九九在线精品视频 | 成人黄色小视频 | 日批网站免费观看 | 黄色片软件网站 | 亚洲日韩精品欧美一区二区 | 国产尤物视频在线 | 久久久亚洲国产精品麻豆综合天堂 | 午夜精品中文字幕 | 亚洲免费av在线 | 91超碰免费在线 | 九九热中文字幕 | 欧美午夜寂寞影院 | 亚洲理论电影网 | 西西人体www444 | 午夜精品一区二区三区四区 | 午夜精品999 | 色偷偷av男人天堂 | 色偷偷88欧美精品久久久 | 午夜黄色影院 | 在线日韩视频 | 少妇av片 | 青青色影院 | 色综合天天综合在线视频 | 久久国产一区二区三区 | 91视频3p| 日韩乱理 | 午夜视频在线瓜伦 | 在线欧美日韩 | 欧美日韩一区二区免费在线观看 | 国产精品中文在线 | 蜜臀久久99精品久久久无需会员 | 在线中文字幕一区二区 | 久久不卡国产精品一区二区 | 欧美日韩国产高清视频 | 黄色毛片视频免费观看中文 | 久久精品牌麻豆国产大山 | 麻豆视频一区 | 中文字幕电影在线 | 国产精品成人av久久 | 丁香婷婷综合网 | 天天色天 | 亚洲精品午夜一区人人爽 | 久久久久久免费毛片精品 | 国产精品永久免费 | 精品亚洲免费视频 | 国产精品人人做人人爽人人添 | 玖玖视频免费在线 | 91免费观看| 日本乱视频| 天天干,天天操 | 成人一级片视频 | 日韩免费不卡视频 | 亚洲视频1 | 日韩在观看线 | 日韩精品91偷拍在线观看 | 久久国产精品久久精品国产演员表 | 韩日电影在线 | 成人黄色免费在线观看 | 国产美女搞久久 | 国产精品九九九九九九 | 久久美女免费视频 | 亚洲美女视频在线观看 | 日本mv大片欧洲mv大片 | 在线影视 一区 二区 三区 | 天天操天天干天天干 | 中文字幕在线播放一区 | 国产小视频在线免费观看视频 | 国产视频一区在线播放 | 久草在线这里只有精品 | 一区二区激情视频 | 国产小视频福利在线 | 亚洲乱码一区 | 97综合在线 | 欧美一级电影免费观看 | 成人av在线看| 日韩免费视频观看 | 五月婷在线观看 | 成人黄色免费在线观看 | 日韩免费视频一区二区 | 国产精品99久久久久久武松影视 | 欧美韩国日本在线 | 婷婷免费在线视频 | 国产不卡av在线 | 一区二区三区四区精品 | 91人人澡人人爽人人精品 | 青青网视频 | 午夜国产一区 | 日韩视频精品在线 | 96在线| 人人澡视频 | 午夜狠狠操 | 91亚洲在线 | 亚洲成人免费观看 | 国产男男gay做爰 | 国产小视频在线免费观看视频 | 日韩精品一区二区三区三炮视频 | 日韩电影在线观看中文字幕 | 一级黄色大片在线观看 | 超碰人在线 | 特及黄色片 | 国产在线视频在线观看 | 国产专区精品 | av电影在线免费观看 | 国产在线毛片 | h网站免费在线观看 | 天天操天天操天天操天天操天天操 | 欧洲在线免费视频 | 国产精品国产三级国产aⅴ9色 | 国产女人18毛片水真多18精品 | 黄色中文字幕 | 精品欧美日韩 | 国产九九精品 | 久久免费视频国产 | 亚洲国产精品影院 | 日本aaaa级毛片在线看 | 国产精品久久久电影 | 久久综合色婷婷 | 91污视频在线 | 色偷偷97 | 奇米影视四色8888 | 国产手机在线观看 | 午夜91视频 | 国产精品久久一区二区无卡 | 国产高清视频网 | 久久免费看a级毛毛片 | 天天操天天添 | 久久不射电影院 | 少妇啪啪av入口 | 国产理论在线 | 日韩美女黄色片 | 黄色的视频网站 | 四虎国产精品免费观看视频优播 | 四虎永久免费在线观看 | 18久久久久久 | 91手机视频在线 | 日韩精品在线观看av | 国产精品国产亚洲精品看不卡15 | 波多野结衣视频一区 | 天天干天天想 | 成人小视频免费在线观看 | 久久免费黄色网址 | 亚洲91中文字幕无线码三区 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 中文字幕在线有码 | 丁香婷婷网 | 久久综合久久88 | 国产麻豆精品一区二区 | 成人资源在线 | 中文字幕一区二区三 | 亚洲精品视频在线观看视频 | 免费av试看 | 色噜噜噜噜 | 久久tv| 四虎成人精品永久免费av九九 | 亚洲人成网站精品片在线观看 | 日本在线观看中文字幕 | 国产午夜亚洲精品 | 国产91精品高清一区二区三区 | 超碰97国产 | 日韩av不卡在线播放 | 手机av资源 | 中文字幕免费在线看 | 中文字幕有码在线播放 | 丁香花中文在线免费观看 | 九九热免费在线视频 | 人人澡人人草 | 国产亚洲精品中文字幕 | 手机在线观看国产精品 | 国产又粗又长的视频 | 狠狠色丁香婷婷综合橹88 | 国产一区二区在线观看免费 | 91精品夜夜 | 国产一级精品绿帽视频 | 国产精品男女 | 国产五码一区 | 久久色在线观看 | 中文字幕在线字幕中文 | 视频一区二区国产 | h动漫中文字幕 | 天堂av在线网址 | 免费看国产a | 成人久久久电影 | 精品国产视频在线观看 | 久久超碰免费 | 丁香六月在线 | 特级片免费看 | 久久区二区 | 伊人春色电影网 | 在线观看中文字幕dvd播放 | 亚洲精品在线一区二区三区 | 国产成人黄色网址 | 正在播放国产一区 | 欧美日韩一二三四区 | 日韩三级在线观看 | 国产精品久久一 | 日韩欧美视频一区二区三区 | 国产精品福利av | 在线a人v观看视频 | 中文字幕丝袜一区二区 | 午夜精品一二区 | 成人a级黄色片 | 亚洲高清在线 | 亚洲va欧美va人人爽春色影视 | 久久99久久99精品免观看软件 | 99热999| 日韩欧美在线观看一区二区 | 中文字幕色综合网 | 日韩中文字幕免费电影 | 色射爱| 久久久久久久久久久久久久免费看 | 成人av一区二区在线观看 | 天天舔夜夜操 | 激情久久综合网 | 992tv在线 | 色综合久久久久综合 | 在线看黄色的网站 | 在线成人国产 | 亚洲国产日韩在线 | 国产精品久久久久9999 | 国产看片免费 | 在线观看av大片 | 99国产精品免费网站 | 欧美日韩国产精品一区二区 | 国内精品久久久久影院优 | 亚洲成a人片在线观看网站口工 | 久久字幕精品一区 | www免费看片com | 日韩免费看视频 | 色亚洲网 | 日韩一级黄色片 | 久久 一区| 国产精品久久久免费 | 国产成人精品一区二区三区福利 | 久久歪歪 | 欧美日韩精品在线一区二区 | 久草免费在线观看 | 91免费版在线 | 国产亚洲婷婷 | 九九热.com | 欧美一区二视频在线免费观看 | 久久精品视频网 | 久久精品资源 | 欧美韩国在线 | 欧美日韩在线观看不卡 | 天天综合天天做天天综合 | 一区二精品 | 三级a视频 | 日本精品中文字幕在线观看 | 国产特黄色片 | 99色国产| 91视频a | 天天操比 | 国产婷婷色| 国产精品久久久久一区二区国产 | 色天天综合久久久久综合片 | 日日夜夜精品 | 91视频在线免费观看 | 国产亚洲午夜高清国产拍精品 | 人人射人人爱 | 91亚洲精品在线观看 | 国产精品99久久久久久大便 | 成人av片在线观看 | www视频在线免费观看 | av丁香 | 最近中文字幕大全中文字幕免费 | 一区二区三区精品在线视频 | av一区二区三区在线播放 | 婷婷亚洲五月 | 九九色综合 | 色吧av色av | 欧美国产视频在线 | 午夜色站 | 午夜精品久久久久久久99 | 久久人人97超碰国产公开结果 | www免费看 | 国产精品成人免费一区久久羞羞 | 国产精品丝袜久久久久久久不卡 | 欧美激情精品久久久久久 | 日韩黄色中文字幕 | 欧美精品一区二区在线观看 | 99性视频| 久久超级碰 | 99久热 | 香蕉影视在线观看 | 日韩欧美69 | 国产精品高潮在线观看 | 午夜私人影院久久久久 | 亚洲美女免费视频 | 香蕉视频日本 | 天天操夜夜逼 | 91av资源网 | 人人看人人 | 一区二区三区高清在线 | 天天久久夜夜 | 国产在线播放不卡 | 91视频免费看片 | 日韩电影一区二区三区 | 国产精品久久久久国产精品日日 | 国产色综合| www.天天成人国产电影 | 亚洲国产福利视频 | 97超碰超碰久久福利超碰 | 天天干视频在线 | 激情av一区二区 | 亚洲黄色免费在线看 | 久久天天躁夜夜躁狠狠85麻豆 | 亚洲区精品 | 高清免费av在线 | 亚洲综合五月天 | a黄色| 国产精品久久毛片 | av免费高清观看 | 亚洲视频久久久 | 日韩特级片 | 香蕉视频国产在线 | 日韩视频一区二区 | 337p日本大胆噜噜噜噜 | 国产裸体无遮挡 | 黄色aaaaa | 国产麻豆精品95视频 | 久久伊人综合 | 91视频亚洲 | 国产亚洲精品久久久网站好莱 | 久久国产一区二区三区 | 亚洲精品456在线播放第一页 | av黄色成人 | 亚洲精品理论片 | 久久久久久久久久网站 | 欧美日韩视频一区二区 | 国产成人一级 | 久久精品7| 99在线视频播放 | 中文字幕免费观看全部电影 | 国产精品黄网站在线观看 | 黄色一级大片在线免费看产 | 中文日韩在线 | 免费av在线网站 | 8x8x在线观看视频 | 日本久久久久久久久久久 | 人人草在线视频 | 亚洲狠狠婷婷综合久久久 | 97人人澡人人添人人爽超碰 | 美女网站视频久久 | av黄色在线播放 | 亚洲最大av在线播放 | 国产精品一区二区三区久久 | 色婷婷成人网 | 久久一本综合 | 在线亚洲日本 | 在线观看中文字幕第一页 | 亚洲午夜大片 | 超碰公开97| 超碰在线97免费 | 精品久久九九 | 欧美日韩天堂 | 欧美日本一二三 | 国产亚洲婷婷免费 | 亚洲精品字幕 | 日日夜夜天天干 | 成人精品一区二区三区电影免费 | 午夜精品在线看 | 日韩在线不卡视频 | 国产一区二区在线免费 | 99精品免费网 | 91成人观看| 国产成人精品福利 | 字幕网在线观看 | 欧美激情第一区 | www.伊人网| 亚洲视频在线看 | 在线国产不卡 | 精品久久久免费视频 | 香蕉免费在线 | 黄污视频网站大全 | 热久在线| 中文av网| 国产精品久久久久一区二区国产 | 九九国产视频 | 99爱视频 | 四虎在线观看精品视频 | 成人h在线观看 | 黄毛片在线观看 | 欧美精品v国产精品v日韩精品 | 日本公妇色中文字幕 | 国产无限资源在线观看 | 国产精品系列在线观看 | 最新国产一区二区三区 | 黄在线| 欧美巨大| 精品一区二区免费在线观看 | 麻豆国产精品va在线观看不卡 | 一区二区三区四区五区在线 | 久久成年人网站 | 国产精品久久影院 | 欧美最猛性xxxxx(亚洲精品) | 天天色 天天 | 色com| 999在线精品 | 久草精品视频在线观看 | se视频网址 | av电影av在线 | 精品国产一区二区三区久久久 | 国产精品久久久久久69 | 在线观看的av | 久久精品毛片基地 | a视频在线| 人人舔人人干 | 91污视频在线 | 日韩特级黄色片 | 在线观看视频国产 | 亚洲国产福利视频 | 日韩在线播放欧美字幕 | 国产精品久久久999 国产91九色视频 | 久草在线视频首页 | 欧美精品一区二区性色 | 天天干天天干天天操 | 国产精品福利无圣光在线一区 | 毛片久久久 | 美女久久久久久久久久 | 麻豆国产电影 | 国产成人精品亚洲日本在线观看 | 久久久免费观看 | 国内精品久久久久久久影视简单 | www.国产在线观看 | 日韩欧美精品在线视频 | 国产成人精品一区二 | 精品国产一区二区三区四区在线观看 | 久久在线精品视频 | 欧美日韩高清一区二区 | 精品国产精品久久一区免费式 | 国产精品亚洲人在线观看 | 黄色av一级片 | 亚洲精品久久在线 | 高清日韩一区二区 | 在线观看免费成人 | 久久亚洲私人国产精品va | 欧美精品一区二区三区一线天视频 | 国产成人精品一区二区三区福利 | 中文字幕在线视频网站 | 一级片视频在线 | 中文av在线天堂 | 麻豆视频国产精品 | 成人免费在线观看av | 日韩在线一区二区免费 | 欧美性爽爽 | 日韩中文久久 | 国产丝袜高跟 | 五月天综合网站 | 日日日干 | 99久e精品热线免费 99国产精品久久久久久久久久 | 国产精品免费久久久 | 欧美一级久久 | 国产高清不卡在线 | 久久久国产一区二区三区 | 天天干天天干天天 | 国产成人免费观看久久久 | 91精品蜜桃 | 99爱精品视频 | 黄色在线观看污 | 91精品在线免费观看视频 | 91精品一区二区在线观看 | 444av| 国产黄色片免费 | 亚洲视频1| 精品一区二区电影 | 国产系列 在线观看 | 久久久99精品免费观看乱色 | 久久国内视频 | 超碰国产在线观看 | 日韩美女一级片 | 黄网在线免费观看 | 伊人官网| 99久久99久国产黄毛片 | 国产在线精品一区 | 日韩一级网站 | 久久这里精品视频 | 不卡的av中文字幕 | 久久久免费观看完整版 | 日本婷婷色| 久久久香蕉视频 | 91九色porn在线资源 | 久久久99精品免费观看乱色 | 久久9精品 | 伊人五月婷 | 91高清免费在线观看 | 三级a视频 | 婷婷国产在线观看 | 97精品伊人 | 99爱国产精品 | 久久久www成人免费精品张筱雨 | 成年人免费观看在线视频 | 在线免费视频 你懂得 | 亚洲高清视频在线观看 | 又爽又黄在线观看 | 成人精品电影 | 国产理论在线 | 国产在线超碰 | 中文字幕一二三区 | 天天射天天操天天色 | 色wwwww| 亚洲成人黄色在线 | 欧美精品在线一区二区 | 在线色视频小说 | 99久久精品久久久久久动态片 | 四虎国产精 | 日韩av黄 | 久久久国产精品亚洲一区 | 日日精品 | 国产精品精 | 欧美一区二区三区四区夜夜大片 | 1024在线看片 | 69久久久久久久 | 一级性视频 | 国产视频在线免费 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 亚洲精品在线观看的 | 久久精品视频免费观看 | 青青久草在线 | 久久躁日日躁aaaaxxxx | 亚洲黄色在线观看 | 日本高清dvd | 久久综合国产伦精品免费 | 欧美色综合天天久久综合精品 | 人人插人人艹 | 人交video另类hd| 可以免费看av | 久久久久高清 | 在线成人一区二区 | 日本大尺码专区mv | 免费a v在线| 极品嫩模被强到高潮呻吟91 | 国产美女主播精品一区二区三区 | www激情网 | 亚洲精品国精品久久99热一 | 黄色av在| 免费国产亚洲视频 | 男女视频91| 欧美a级免费视频 | 久久精品国产一区二区 | 深夜福利视频在线观看 | 欧美激情视频免费看 | 美女网站在线 | 天天操天天射天天插 | 久久黄色免费观看 | 丁香婷婷综合激情 | 在线观看一区二区视频 | 99久久这里有精品 | 免费看成年人 | a一片一级 | 久久不卡视频 | 国产视频精选 | 在线观看免费版高清版 | 免费观看国产精品 | 欧美日韩免费在线观看视频 | 97在线观看免费视频 | 欧美日一级片 | 国产精品女 | 日本韩国在线不卡 | 在线观看黄a | 久久五月婷婷综合 | 欧美日韩首页 | 亚洲国产精品免费 | 欧美性高跟鞋xxxxhd | 国产成人精品一二三区 | 最新超碰 | 国产精品亚洲精品 | 91中文字幕视频 | 国产午夜精品一区二区三区嫩草 | 日韩精品2区 | 亚洲爱视频 | 偷拍精品一区二区三区 | 久久狠狠亚洲综合 | 久久精品视频18 | 久久久高清一区二区三区 | 欧美精品一区二区三区一线天视频 | 麻豆视频免费播放 | 欧美大jb| 视频成人永久免费视频 | 亚洲综合国产精品 | 日日碰狠狠添天天爽超碰97久久 | 国产精品色视频 | 亚洲精品9 | 成人av资源在线 | 波多野结衣在线中文字幕 | 日本精油按摩3 | 特黄特色特刺激视频免费播放 | 国产黄影院色大全免费 | 在线观看日韩av | 成人久久视频 | 国产精品不卡av | 久草视频中文 | 亚洲深夜影院 | 国产精品永久在线观看 | a级片韩国| 午夜精品久久久久久久久久 | 正在播放五月婷婷狠狠干 | 一区二区影视 | 在线免费视频 你懂得 | 丁香婷婷色综合亚洲电影 | 成人作爱视频 | 日韩精品免费在线观看 | 午夜精品一区二区三区视频免费看 | 亚洲欧美日韩国产一区二区 | 欧美成人在线免费 | 极品久久久久久久 | 五月天综合色激情 | 成人h视频| 黄色精品久久 | 久久伊人精品一区二区三区 | 亚洲一级电影在线观看 | 香蕉视频在线网站 | 香蕉日日 | 久久精品网站免费观看 | 91成版人在线观看入口 | 91中文字幕在线观看 | 99这里精品| 欧美日本日韩aⅴ在线视频 插插插色综合 | 久久国产成人午夜av影院潦草 | 国产精品大片免费观看 | 91亚洲欧美激情 | 精品国产乱码久久久久久1区2匹 | 精品在线观看视频 | 欧美激情视频免费看 | 国产视频91在线 | 五月婷婷六月丁香在线观看 | 日韩丝袜视频 | 99精品国产99久久久久久97 | 一区二区三区免费在线观看视频 | 国产免费嫩草影院 | 国内精品久久久久久久久久久久 | 久久精品com | 96超碰在线 | 国产高清中文字幕 | 国产精品久久久久久久久费观看 | 久久狠狠亚洲综合 | 日韩电影中文,亚洲精品乱码 | 91免费的视频在线播放 | 久草久草久草久草 | h视频日本 | 久久99亚洲热视 | 麻豆视频免费播放 | 黄色电影网站在线观看 | 国产亚洲人 | 99热精品久久 | 狠狠色伊人亚洲综合网站色 | 午夜精品一区二区三区在线播放 | 日韩激情精品 | 国产精品porn | 免费午夜av| 69视频在线 | av片一区二区 | 精品国产视频一区 | 美女福利视频在线 | 成年人视频免费在线 | 国产精久久 | 久久久久久亚洲精品 | 在线中文字幕观看 | 国产成人福利在线观看 | 日韩视频在线播放 | 国产午夜三级一区二区三 | 99色在线 | 深爱五月激情五月 | 天天插天天狠 | 一个色综合网站 | 亚洲综合色激情五月 | 激情综合中文娱乐网 | 最近日韩免费视频 | 中文字幕在线久一本久 | 日韩在线国产精品 | 91中文字幕在线视频 | 黄色大片免费播放 | 婷婷在线视频观看 | 99视屏| 色搞搞| 亚洲激情久久 | 久久成人18免费网站 | 久青草国产在线 | 国产亚洲视频在线免费观看 | 国产va精品免费观看 | 国产在线污 | 久久久免费 |