Html5本地存儲(chǔ)+本地?cái)?shù)據(jù)庫(kù)+離線存儲(chǔ)

首先介紹什么叫存儲(chǔ):

在這里插入圖片描述

cache:通常把它叫做緩存蓝厌,功能就是把從DB,或者磁盤(pán)拿出來(lái)的東西放在緩存里面,這樣的話可以減少讀取磁盤(pán)的IO。
磁盤(pán)文件:通常把一些圖片或者一些視頻都存放在磁盤(pán)上绣硝。
數(shù)據(jù)庫(kù):mysql,oracle,一般都是存放一些關(guān)系型數(shù)據(jù),表與表之間有關(guān)聯(lián)撑刺。
內(nèi)存:如果放在數(shù)據(jù)庫(kù)或者磁盤(pán)的文件要頻繁的讀取的話鹉胖,不如放在內(nèi)存里面會(huì)提高讀取效率。通常情況下cache也是存放在內(nèi)存里面的够傍。


在這里插入圖片描述

cookies特定:
1甫菠。http頭部會(huì)帶上cookie信息,顯得臃腫冕屯,影響請(qǐng)求速度寂诱。
2。Cookie的數(shù)據(jù)大小限制只能為4kb數(shù)據(jù)安聘,如果數(shù)據(jù)長(zhǎng)度超過(guò)4kb數(shù)據(jù)痰洒,超過(guò)后的數(shù)據(jù)將返回空字符串。
3浴韭。如果把cookie都存在主域名下丘喻,子域名訪問(wèn)http請(qǐng)求的話都是帶上主域名下的cookie,會(huì)減慢訪問(wèn)速度念颈。


在這里插入圖片描述

在這里插入圖片描述
  1. Cookie是有域的概念的泉粉,在不同的域下,cookie不能互相使用榴芳,cookie對(duì)于那個(gè)域是有效的嗡靡,所有向該域發(fā)送的請(qǐng)求中都會(huì)包含這個(gè)cookie 的信息的,
    Cookie是有 有效期概念的翠语,如果想要cookie存儲(chǔ)多長(zhǎng)時(shí)間叽躯,可以設(shè)置cookie的時(shí)間,一般的情況下肌括,cookie的生命周期是在游覽器關(guān)閉的時(shí)候失效点骑,cookie可在瀏覽器關(guān)閉后依然保存在用戶的 機(jī)器上(同一個(gè)瀏覽器,不同的瀏覽器不能保存),如果設(shè)置的日期是過(guò)期的日期谍夭,那么cookie立刻刪掉黑滴。
    Cookie路徑的概念:對(duì)于指定域中的那個(gè)路徑,應(yīng)該向服務(wù)器發(fā)送cookie紧索,比如我們可以指定cookie只有從http://www.zuixiandao.cn/books/中才能訪問(wèn)袁辈,那么http://www.zuixiandao.cn的頁(yè) 面就不會(huì)發(fā)送cookie信息。
    ++++++++++++++++++++

sessionStorage 和 localStorage

Html5新增了兩個(gè)本地存儲(chǔ)數(shù)據(jù)珠漂,分別是sessionStorage 和 localStorage.
瀏覽器支持程度如下:


在這里插入圖片描述

注意:IE8 及 以上都支持 web storage晚缩。
sessionStorage: 將數(shù)據(jù)保存在session對(duì)象中尾膊,所謂session,指用戶瀏覽某個(gè)網(wǎng)站時(shí)荞彼,從進(jìn)入網(wǎng)站到瀏覽器關(guān)閉的這段時(shí)間冈敛,也就是用戶瀏覽這個(gè)網(wǎng)站所花費(fèi)的時(shí)間。
生命周期:指只在當(dāng)前的窗口有效鸣皂,打開(kāi)一個(gè)新的同源窗口抓谴,或者說(shuō)重啟瀏覽器都失效峦耘。
數(shù)據(jù)大小:可以保存5MB甚至更多吸占。

localStorage: 將數(shù)據(jù)保存在客戶端本地的硬件設(shè)備(通常是指硬盤(pán),但也可以是其他硬件設(shè)備)撰洗,即使瀏覽器被關(guān)閉了荆陆,該數(shù)據(jù)依然存在滩届,下次打開(kāi)瀏覽器訪問(wèn)網(wǎng)站時(shí)仍然可以繼續(xù)使用。但是慎宾,數(shù)據(jù)保存是按不同的瀏覽器分別進(jìn)行的丐吓,也就是說(shuō),如果打開(kāi)別的瀏覽器趟据,是讀取不到在這個(gè)瀏覽器中保存的數(shù)據(jù)的券犁。
生命周期:數(shù)據(jù)一直保存在硬盤(pán)中。持久性保存(但是不同的瀏覽器保存的數(shù)據(jù)汹碱,是不能通用的)粘衬。
數(shù)據(jù)大小:可以保存5MB甚至更多的數(shù)據(jù)。

cookie 與 sessionStorage 及 localStorage的區(qū)別咳促;

共同點(diǎn):都是在客戶端存儲(chǔ)數(shù)據(jù)稚新,且是同源的。
區(qū)別
存儲(chǔ)大小不一樣跪腹;cookie存儲(chǔ)數(shù)據(jù)最大只能為4kb褂删,而sessionStorage與localStorage可以保存5MB甚至更多數(shù)據(jù)。
Cookie數(shù)據(jù)始終在同源的http請(qǐng)求中攜帶冲茸,即cookie在瀏覽器與服務(wù)器之間來(lái)回傳遞屯阀,而sessionStorage與localStorage不會(huì)自動(dòng)發(fā)給服務(wù)端,僅在本地保存轴术。

數(shù)據(jù)有效期不同难衰;sessionStorage僅在當(dāng)前瀏覽器窗口未關(guān)閉之前有效(同源的新窗口不生效),localStorage僅在當(dāng)前的瀏覽器下永久生效(不同的瀏覽器不能共享數(shù)據(jù))逗栽,不管關(guān)閉了 重新打開(kāi)的 還是生效的盖袭。Cookie只在設(shè)置的cookie過(guò)期時(shí)間之前一直有效,即使窗口或者瀏覽器關(guān)閉,或者打開(kāi)新的同源窗口鳄虱。

作用域不同弟塞;sessionStorage不在不同的瀏覽器窗口中共享,即是同一個(gè)頁(yè)面拙已,localStorage在所有的同源窗口(子域之間不能共享數(shù)據(jù)宣肚,不支持改domain,可以用postMassage)中都是共享的(只在相同的瀏覽器下)悠栓,cookie在所有的同源窗口(子域之間可以把各自的domain改成和主域一樣來(lái)實(shí)現(xiàn)共享數(shù)據(jù))都是共享的(僅在同一個(gè)瀏覽器中)。

SessionStorage與LocalStorage他們都擁有相同的方法按价;

  1. setItem存儲(chǔ)value
    用法:.setItem( key, value)惭适,代碼如下:
    localStorage.setItem(key,value):將value存儲(chǔ)到key字段
  2. getItem獲取value
    用法:.getItem(key) 代碼如下:
    localStorage.getItem(key):獲取指定key本地存儲(chǔ)的值
  3. removeItem刪除key
    用法:.removeItem(key),代碼如下:
    localStorage.removeItem(key):刪除指定key本地存儲(chǔ)的值
  4. clear清除所有的key/value
    用法:.clear()楼镐,代碼如下:
    localStorage.clear(); 清除所有的數(shù)據(jù)(firefox除外)
    它將刪除所有同源的本地存儲(chǔ)的localStorage數(shù)據(jù)
    而對(duì)于Session Storage癞志,它只清空當(dāng)前會(huì)話存儲(chǔ)的數(shù)據(jù)。
    sessionStorage也有上面一樣的方法框产;

只要能序列化成字符串就能存在storage里面凄杯,圖片可以用canvas的drawImage嵌入圖片,再用 toDataURL轉(zhuǎn)為路徑字符串存起來(lái)秉宿。如下圖:


在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
手動(dòng)控制localstorage的過(guò)期控制:
在這里插入圖片描述

indexedDB(以前叫做Web Sql)

雖然Html5已經(jīng)提供了功能強(qiáng)大的localStorage和sessionStorage戒突,但是他們兩個(gè)都只能提供存儲(chǔ)簡(jiǎn)單數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),對(duì)于復(fù)雜的Web應(yīng)用的數(shù)據(jù)卻無(wú)能為力描睦。逆天的是Html5提供了一個(gè)瀏覽器端的數(shù)據(jù)庫(kù)支持膊存,允許我們直接通JS的API在瀏覽器端創(chuàng)建一個(gè)本地的數(shù)據(jù)庫(kù),而且支持標(biāo)準(zhǔn)的SQL的CRUD操作忱叭,讓離線的Web應(yīng)用更加方便的存儲(chǔ)結(jié)構(gòu)化的數(shù)據(jù)隔崎。


在這里插入圖片描述
在這里插入圖片描述

移動(dòng)端支持的比較弱一些,移動(dòng)端主要支持web sql韵丑,但是W3C已經(jīng)不再維護(hù)web sql

在這里插入圖片描述

在這里插入圖片描述

詳細(xì)用法參考indexDB筆記
http://www.cnblogs.com/dolphinX/p/3415761.html
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

以下是Web Sql的基本用法和API:

操作本地?cái)?shù)據(jù)庫(kù)的最基本的步驟是:
● 第一步:openDatabase方法:創(chuàng)建一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)的對(duì)象爵卒。
● 第二步:使用第一步創(chuàng)建的數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象來(lái)執(zhí)行transaction方法,通過(guò)此方法可以設(shè)置一個(gè)開(kāi)啟事務(wù)成功的事件響應(yīng)方法撵彻,在事件響應(yīng)方法中可以執(zhí)行SQL.
● 第三步:通過(guò)executeSql方法執(zhí)行查詢钓株,當(dāng)然查詢可以是:CRUD。
接下來(lái)分別介紹一下相關(guān)的方法的參數(shù)和用法千康。
(1)openDatabase方法:

//Demo:獲取或者創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)享幽,如果數(shù)據(jù)庫(kù)不存在那么創(chuàng)建之
var dataBase = openDatabase("student", "1.0", "學(xué)生表", 1024 * 1024, function () { });

openDatabase方法打開(kāi)一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)不存在拾弃,它還可以創(chuàng)建數(shù)據(jù)庫(kù)值桩。幾個(gè)參數(shù)意義分別是:
● 1,數(shù)據(jù)庫(kù)名稱豪椿。
● 2奔坟,數(shù)據(jù)庫(kù)的版本號(hào)携栋,目前來(lái)說(shuō)傳個(gè)1.0就可以了,當(dāng)然可以不填咳秉;
● 3婉支,對(duì)數(shù)據(jù)庫(kù)的描述。
● 4澜建,設(shè)置分配的數(shù)據(jù)庫(kù)的大邢蛲凇(單位是kb)。
● 5炕舵,回調(diào)函數(shù)(可省略)何之。
初次調(diào)用時(shí)創(chuàng)建數(shù)據(jù)庫(kù),以后就是建立連接了咽筋。
(2)db.transaction方法可以設(shè)置一個(gè)回調(diào)函數(shù)溶推,此函數(shù)可以接受一個(gè)參數(shù)就是我們開(kāi)啟的事務(wù)的對(duì)象。然后通過(guò)此對(duì)象可以進(jìn)行執(zhí)行Sql腳本奸攻,跟下面的步驟可以結(jié)合起來(lái)蒜危。
(3)通過(guò)executeSql方法執(zhí)行查詢。
ts.executeSql(sqlQuery,[value1,value2..],dataHandler,errorHandler)
參數(shù)說(shuō)明:
● qlQuery:需要具體執(zhí)行的sql語(yǔ)句睹耐,可以是create辐赞、select、update疏橄、delete占拍;
● value1,value2..]:sql語(yǔ)句中所有使用到的參數(shù)的數(shù)組,在executeSql方法中捎迫,將s>語(yǔ)句中所要使用的參數(shù)先用“?”代替晃酒,然后依次將這些參數(shù)組成數(shù)組放在第二個(gè)參數(shù)中
● ataHandler:執(zhí)行成功是調(diào)用的回調(diào)函數(shù),通過(guò)該函數(shù)可以獲得查詢結(jié)果集窄绒;
● 4,errorHandler:執(zhí)行失敗時(shí)調(diào)用的回調(diào)函數(shù)贝次;
+++++++++++++++++++++++++++++++++++++++++

html5離線緩存

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市彰导,隨后出現(xiàn)的幾起案子蛔翅,更是在濱河造成了極大的恐慌,老刑警劉巖位谋,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件山析,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡掏父,警方通過(guò)查閱死者的電腦和手機(jī)笋轨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人爵政,你說(shuō)我怎么就攤上這事仅讽。” “怎么了钾挟?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵洁灵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我掺出,道長(zhǎng)徽千,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任汤锨,我火速辦了婚禮罐栈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘泥畅。我一直安慰自己,他們只是感情好琅翻,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布位仁。 她就那樣靜靜地躺著,像睡著了一般方椎。 火紅的嫁衣襯著肌膚如雪聂抢。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天棠众,我揣著相機(jī)與錄音琳疏,去河邊找鬼。 笑死闸拿,一個(gè)胖子當(dāng)著我的面吹牛空盼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播新荤,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼揽趾,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了苛骨?” 一聲冷哼從身側(cè)響起篱瞎,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎痒芝,沒(méi)想到半個(gè)月后俐筋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡严衬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年澄者,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡闷哆,死狀恐怖腰奋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情抱怔,我是刑警寧澤劣坊,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站屈留,受9級(jí)特大地震影響局冰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜灌危,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一康二、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧勇蝙,春花似錦沫勿、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至翁锡,卻和暖如春蔓挖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背馆衔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工瘟判, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人角溃。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓拷获,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親减细。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刀诬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容