成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析IndexedDB存數結構

數據庫 其他數據庫
IndexedDB 是HTML5中的一種數據存儲方式。用來幫助網站,在瀏覽器本地,存儲結構比較復雜的數據。它和HTML5中其它的數據存儲方式有一些共性。

IndexedDB 是HTML5中的一種數據存儲方式。用來幫助網站,在瀏覽器本地,存儲結構比較復雜的數據。它和HTML5中其它的數據存儲方式有一些共性:

1.和我們熟知的cookies類似,IndexedDB是每個域名獨立存儲數據的。

對cookies不熟悉的童鞋,可以順便學習一下cookies,不過這不影響大家理解IndexedDB。網上cookies的教材和文章非常多,這里不一一列舉。

2.和localStorage相比,IndexedDB可以存儲任意格式的json object,而localStorage則只能存string,我們在使用localStorage存儲復雜數據的時候,常常會協同JSON.parse和JSON.stringify一起工作,而IndexedDB則可以直接存取對象,無需轉換成字符串。

對localStorage不熟悉的童鞋,可以查閱w3c官方文檔,這里有一份我參與翻譯的中文版文檔,這里還有一些localStorage的使用建議。

3.和web sql database類似,IndexedDB也分數據庫,每個數據庫可以建立多個不同配置的表,而且所有的操作都在事務(transaction)中完成,不同之處在于web sql database是通過SQL執行語句來完成操作的,而IndexedDB則直接通過JS API完成操作。

需要指出的是,web sql database規范已經被w3c拋棄,對此不熟的朋友,也不必學習了,如果有童鞋想嘗試的,可以找一款webkit瀏覽器試試看(傲游3、chrome、safari)

IndexedDB的整體存儲結構

見下圖,IndexedDB(以下簡稱IDB)嚴格遵循w3c的同源策略,每個源都擁有獨立的大存儲空間;每個大存儲空間內,又可以通過當前源下的頁面腳本創建多個數據庫;每個數據庫可以包含多個表(ObjectStore);每個表都是一個json對象列表,可以存儲多個json對象,比如{"name": "jinjiang", "age": 26}。

 

 

ObjectStore中的key

不同的源、不同的數據庫、不同的表、不同的對象,都是如何識別的呢?不同的源直接通過域名進行識別,比如weibo.com、maxthon.cn、renren.com;不同的數據庫通過一個字符串(name)識別,比如"blog"、"bbs"、"wiki"等;不同的表也通過一個字符串(name)識別,比如"users"、"contacts"、"articles"等;上面這些識別方式都很好理解,不太好理解的,是如何在表(ObjectStore)中識別不同的json對象,即key。

IDB為ObjectStore提供了兩種key:

1.鍵值對(out-of-line keys: key-value pair)

2.鍵路徑(inline keys: keyPath)

第1種是比較好理解的,就像localStorage中的鍵值對類似,一個key對應一個value,不同的時,localStorage中的key和value都是字符串類型的,而IDB中的key和value都可以是其它json對象。比如

  1. "a" => "b"  
  2. [3, 7] => 21 

第2種是通過value中的某個屬性字段直接用作key。因為value都是json數據,所以我們可以這樣做,假如我們想創建一個表,里面的數據是類似這種感覺的:

  1. {profile: {id: 1, name: "葛優"}, girls: [...]}  
  2. {profile: {id: 7, name: "James Bond"}, girls: [...]}  
  3. {profile: {id: 8, name: "周星馳"}, girls: [...]} 

那么我們就可以把profile里的id作為key,方法是為這個表指定一個keyPath

  1. keyPath => 'profile.id' 

這樣ObjectStore就會自動按照每個value的value.profile.id進行識別和匹配。

以上就是2種json對象的識別方式。除此之外,我們還可以為ObjectStore加入自增id特性(key generator),這一特性可以讓IDB在添加數據時自動分配一個唯一的key,如果是第2種key,IDB還會把key存在響應的keyPath下。

以上就是對IndexedDB存數結構的介紹,先告一段落。

下一篇文章,會通過簡單的接口介紹,幫助大家進一步認識IndexedDB。

原文:http://bulaoge.net/topic.blg?dmn=g3g4&tid=2329796#Content

【編輯推薦】

調試IndexedDB應用程序

責任編輯:陳貽新 來源: 勾三股四的博客
相關推薦

2009-07-09 13:45:06

Servlet基本結構

2023-11-12 21:49:10

Redis數據庫

2016-09-20 15:47:46

JavascriptIndexedDB瀏覽器

2009-07-15 13:46:26

Swing體系結構

2009-08-13 13:29:04

C#結構體使用

2015-08-06 15:20:21

runtimeIOS開發

2010-06-11 14:15:23

WAP協議棧

2012-02-15 13:26:56

IndexedDB

2013-01-14 12:53:13

Firefox OSIndexedDB

2010-09-07 10:33:04

CSS

2009-08-31 15:02:22

C#解析結構體指針

2009-08-13 11:18:50

C#結構體

2013-01-18 10:59:44

IBMdW

2012-02-23 13:59:00

IndexedDB

2009-12-29 10:24:51

Linux內核循環鏈表

2009-09-23 09:36:34

C#數組

2018-01-19 08:54:18

存儲系統SILT

2010-04-22 12:18:21

Aix操作系統

2009-08-13 14:56:46

C#的結構體使用

2011-05-27 09:17:37

光纖
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区在线观看 | 美国av毛片 | 久久久久国产 | 亚洲a毛片 | 麻豆精品国产91久久久久久 | 中文字幕1区 | 天堂亚洲 | 久久青青 | 久久久青草婷婷精品综合日韩 | 日韩欧美一区二区三区免费观看 | 夜夜骑首页 | 网络毛片 | 午夜在线视频一区二区三区 | 国产一区二区三区在线看 | av男人的天堂av | 成人精品鲁一区一区二区 | 久在草 | 久久久国产精品视频 | 一级毛片视频免费观看 | 亚洲国产成人精品在线 | 在线观看中文字幕 | 人干人人 | 亚洲影音| 亚洲精品日韩一区二区电影 | 婷婷久久网 | 亚洲一区二区在线视频 | 日本精品裸体写真集在线观看 | 久久久美女| 精品免费国产视频 | 99久久精品免费看国产免费软件 | 亚洲九九色 | 久久99精品久久久 | 亚洲国产视频一区二区 | 成人欧美一区二区三区白人 | 成人精品毛片 | 成人在线网| 人人干视频在线 | 亚洲国产精品久久久久婷婷老年 | 亚洲一区二区综合 | 日韩精品av | 欧美精品久久久 |