亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍

突襲HTML5之Javascript API擴展3—本地存儲全新體驗
來源:易賢網(wǎng) 閱讀:2021 次 日期:2016-07-22 14:49:28
溫馨提示:易賢網(wǎng)小編為您整理了“突襲HTML5之Javascript API擴展3—本地存儲全新體驗”,方便廣大網(wǎng)友查閱!

存儲數(shù)據(jù)在客戶端可以解決很多的問題和減少不必要的傳輸數(shù)據(jù): 能保存程序的狀態(tài)/ 能緩存數(shù)據(jù)/能保存用戶的喜好等等以前的做法是很繁笨的,接下來將詳細介紹感興趣的朋友可以了解下,或許對你有所幫助

為什么要存數(shù)據(jù)到客戶端?

存儲數(shù)據(jù)在客戶端可以解決很多的問題和減少不必要的傳輸數(shù)據(jù):

1. 能保存程序的狀態(tài):用戶關閉瀏覽器再打開后能知道他工作到哪了。

2. 能緩存數(shù)據(jù):很多不會變化的數(shù)據(jù)根本沒必要每次都從服務端獲取。

3. 能保存用戶的喜好:這種數(shù)據(jù)通常不需要存在服務端。

以前的做法

在HTML5本地存儲之前,如果我們想在客戶端保存持久化數(shù)據(jù),有這么幾個選擇:

1. HTTP cookie。HTTP cookie的缺點很明顯,最多只能存儲4KB的數(shù)據(jù),每個HTTP請求都會被傳送回服務器,明文傳輸(除非你使用SSL)。

2. IE userData。userData是微軟在上世紀90年代的瀏覽器大戰(zhàn)時推出的本地存儲方案,借助DHTML的behaviour屬性來存儲本地數(shù)據(jù), 允許每個頁面最多存儲64K數(shù)據(jù),每個站點最多640K數(shù)據(jù),userData的缺點顯而易見,它不是Web標準的一部分,除非你的程序只需要支持IE, 否則它基本沒什么用處。

3. Flash cookie。Flash cookie實際上和HTTP cookie并不是一回事,或許它的名字應該叫做"Flash本地存儲”,F(xiàn)lash cookie默認允許每個站點存儲不超過100K的數(shù)據(jù),如果超出了,F(xiàn)lash會自動向用戶請求更大的存儲空間,借助Flash的 ExternalInterface接口,你可以很輕松地通過Javascript操作Flash的本地存儲。Flash的問題很簡單,就是因為它是 Flash。

4. Google Gears。Gears是Google在07年發(fā)布的一個開源瀏覽器插件,旨在改進各大瀏覽器的兼容性,Gears內(nèi)置了一個基于SQLite的嵌入式 SQL數(shù)據(jù)庫,并提供了統(tǒng)一API對數(shù)據(jù)庫進行訪問,在取得用戶授權之后,每個站點可以在SQL數(shù)據(jù)庫中存儲不限大小的數(shù)據(jù),Gears的問題就是 Google自己都已經(jīng)不用它了。

眼花繚亂的各種技術導致的就是瀏覽器的兼容性問題。這里大家用的最多的可能就是cookie了。

HTML5中的全新體驗

針對以上的問題,HTML5中給出了更加理想的解決方案:假如你需要存儲的只是簡單的用key/value對即可解決的數(shù)據(jù),則可以使用Web Storage。

與Cookie相比,Web Storage存在不少的優(yōu)勢,概括為以下幾點:

1. 存儲空間更大:IE8下每個獨立的存儲空間為10M,其他瀏覽器實現(xiàn)略有不同,但都比Cookie要大很多。

2. 存儲內(nèi)容不會發(fā)送到服務器:當設置了Cookie后,Cookie的內(nèi)容會隨著請求一并發(fā)送的服務器,這對于本地存儲的數(shù)據(jù)是一種帶寬浪費。而Web Storage中的數(shù)據(jù)則僅僅是存在本地,不會與服務器發(fā)生任何交互。

3. 更多豐富易用的接口:Web Storage提供了一套更為豐富的接口,使得數(shù)據(jù)操作更為簡便。

4. 獨立的存儲空間:每個域(包括子域)有獨立的存儲空間,各個存儲空間是完全獨立的,因此不會造成數(shù)據(jù)混亂。

Web Storage分類

Web Storage實際上由兩部分組成:sessionStorage與localStorage。

sessionStorage用于本地存儲一個會話(session)中的數(shù)據(jù),這些數(shù)據(jù)只有在同一個會話中的頁面才能訪問并且當會話結束后數(shù)據(jù)也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。

localStorage用于持久化的本地存儲,除非主動刪除數(shù)據(jù),否則數(shù)據(jù)是永遠不會過期的。

檢查是否支持Web Storage

Web Storage在各大主流瀏覽器中都支持了,但是為了兼容老的瀏覽器,還是要檢查一下是否可以使用這項技術。

第一種方式:通過檢查Storage對象是否存在來檢查瀏覽器是否支持Web Storage:

代碼如下:

if(typeof(Storage)!=="undefined"){

// Yes! localStorage and sessionStorage support!

// Some code.....

} else {

// Sorry! No web storage support..

}

第二種方式就是分別檢查各自的對象,例如檢查localStorage是否支持:

代碼如下:

if (typeof(localStorage) == 'undefined' ) {

alert('Your browser does not support HTML5 localStorage. Try upgrading.');

} else {

// Yes! localStorage and sessionStorage support!

// Some code.....

}

或者:

if('localStorage' in window && window['localStorage'] !== null){

// Yes! localStorage and sessionStorage support!

// Some code.....

} else {

alert('Your browser does not support HTML5 localStorage. Try upgrading.');

}

或者

if (!!localStorage) {

// Yes! localStorage and sessionStorage support!

// Some code.....

} else {

alert('Your browser does not support HTML5 localStorage. Try upgrading.');

}

很顯然第一個方式最直接,也最簡單。

Web Storage的使用

Web Storage中存儲的是鍵值對,而且瀏覽器會以字符串方式存儲。記住在必要的時候將他們轉為其他格式。

sessionStorage與localStorage除了用途不同外,成員列表是一樣的:

代碼如下:

key = value: 存貯鍵值對

setItem(key, value): 存貯鍵值對

getItem(key): 取鍵值對

removeItem(key):移除所有鍵值對

clear():清空所有鍵值對

length:鍵值對的數(shù)目

這里還是要強調一下:setItem(key,value)方法中的value類型,理論上可以是任意類型,不過實際上瀏覽器會調用value的toString方法來獲取其字符串值并存儲到本地,因此如果是自定義的類型則需要自己定義有意義的toString方法。例如下面的例子結合JSON.stringify使用:

代碼如下:

var person = {'name': 'rainman', 'age': 24};

localStorage.setItem("me", JSON.stringify(person));

JSON.parse(localStorage.getItem('me')).name; // 'rainman'

/**

* JSON.stringify,將JSON數(shù)據(jù)轉化為字符串

* JSON.stringify({'name': 'fred', 'age': 24}); // '{"name":"fred","age":24}'

* JSON.stringify(['a', 'b', 'c']); // '["a","b","c"]'

* JSON.parse,反解JSON.stringify

* JSON.parse('["a","b","c"]') // ["a","b","c"]

*/

此外,添加鍵值對的時候,如果添加的數(shù)量比較多,比較保險的做法是去檢查是否有超出限額的異常:

代碼如下:

try {

localStorage.setItem(itemId, values.join(';'));

} catch (e) {

if (e == QUOTA_EXCEEDED_ERR) {

alert('Quota exceeded!');

}

}

Web Storage的方法非常簡單,下面的示例是統(tǒng)計button點擊的次數(shù)的:

代碼如下:

<!DOCTYPE html>

<html>

<head>

<script>

function clickCounter()

{

if(typeof(Storage)!=="undefined")

{

if (localStorage.clickcount)

{

localStorage.clickcount=Number(localStorage.clickcount)+1;

}

else

{

localStorage.clickcount=1;

}

document.getElementById("result").innerHTML="You have clicked the button " + localStorage.clickcount + " time(s).";

}

else

{

document.getElementById("result").innerHTML="Sorry, your browser does not support web storage...";

}

}

</script>

</head>

<body>

<p><button onclick="clickCounter()" type="button">Click me!</button></p>

<div id="result"></div>

<p>Click the button to see the counter increase.</p>

<p>Close the browser tab (or window), and try again, and the counter will continue to count (is not reset).</p>

</body>

</html>

在上面的例子中,你可以把localStorage換成sessionStorage,點擊幾次button然后驗證在關閉瀏覽器前后的效果。

存在的問題

Web Storage的缺陷主要集中在其安全性方面,具體體現(xiàn)在以下兩點:

1. 瀏覽器會為每個域分配獨立的存儲空間,即腳本在域A中是無法訪問到域B中的存儲空間的,但是瀏覽器卻不會檢查腳本所在的域與當前域是否相同。即在域B中嵌入域A中的腳本依然可以訪問域B中的數(shù)據(jù)。

2. 存儲在本地的數(shù)據(jù)未加密而且永遠不會過期,極易造成隱私泄漏。

此外,更多的安全相關的問題請參看后面實用參考中的鏈接。

其他規(guī)范一覽(僅供了解,說不定什么時候就沒了)

Web Database

在老的HTML5提議中,假如你需要存儲復雜的數(shù)據(jù)則可以使用Web Database,可以像客戶端程序一樣使用SQL(Web Database標準已被廢棄,這里就是簡單提一下);

globalStorage

這個也是html5中提出來,在瀏覽器關閉以后,使用globalStorage存儲的信息仍能夠保留下來,localStorage一樣,域中任何一個頁面存儲的信息都能被所有的頁面共享, 不過目前只有FireFox支持。

基本語法:

• globalStorage['developer.mozilla.org'] —— 在developer.mozilla.org下面所有的子域都可以通過這個命名空間存儲對象來進行讀和寫。

• globalStorage['mozilla.org'] —— 在mozilla.org域名下面的所有網(wǎng)頁都可以通過這個命名空間存儲對象來進行讀和寫。

• globalStorage['org'] —— 在.org域名下面的所有網(wǎng)頁都可以通過這個命名空間存儲對象來進行讀和寫。

• globalStorage[''] —— 在任何域名下的任何網(wǎng)頁都可以通過這個命名空間存儲對象來進行讀和寫

方法屬性:

• setItem(key, value) —— 設置或重置 key 值。

• getItem(key) —— 獲取 key 值。

• removeItem(key) —— 刪除 key 值。

• 設置 key 值:window.globalStorage["planabc.net"].key = value;

• 獲取 key 值:value = window.globalStorage["planabc.net"].key;

其它特征:

• 過期時間同 localStorage,其它的一些特性也和localStorage相似。

• 現(xiàn)在Firefox只支持當前域下的globalStorage存儲, 如果使用公用域會導致一個這樣一個類似的錯誤“Security error” code: “1000”。

IndexedDB

最后我們要介紹的就是IndexedDB了,相比其他兩個規(guī)范,目前只有Firefox實現(xiàn)了IndexedDB(順便提一下,Mozilla表示它們永遠不會去實現(xiàn)Web SQL Database),不過Google已經(jīng)表示正在考慮在Chrome中加入IndexDB支持。

IndexedDB引入了一個object store的概念,這有點像是一個SQL Database,你可以在“數(shù)據(jù)庫”中存儲“記錄”,并且每條“記錄”可以擁有很多“字段",每個字段都有一個特定的數(shù)據(jù)類型,你可以選擇記錄的子集, 并使用“光標”進行遍歷,同時object store中的所有變更都是基于“事務”的。

更多的信息參看后面使用參考中講述FireFox中IndexedDB的文檔。

更多信息請查看網(wǎng)頁制作
易賢網(wǎng)手機網(wǎng)站地址:突襲HTML5之Javascript API擴展3—本地存儲全新體驗
由于各方面情況的不斷調整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢?yōu)闇剩?/div>
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網(wǎng)

亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍
一本一本久久| 伊人久久亚洲影院| 欧美在线免费一级片| 国产伦精品一区二区三区视频黑人| 日韩视频一区| 久久久久久九九九九| 欧美日韩亚洲三区| 中国成人在线视频| 久久亚洲国产精品日日av夜夜| 欧美日韩国产综合网| 99精品国产高清一区二区| 毛片一区二区| 亚洲精品精选| 欧美激情aⅴ一区二区三区| 亚洲私拍自拍| 性欧美长视频| 在线精品福利| 亚洲欧美一级二级三级| 国产精品久久一区二区三区| 欧美精品一卡| 性娇小13――14欧美| 国产精品二区三区四区| 久久本道综合色狠狠五月| 亚洲福利av| 亚洲欧美一级二级三级| 国产一级精品aaaaa看| 欧美在线资源| 久久精品人人做人人爽电影蜜月| 99在线|亚洲一区二区| 欧美另类高清视频在线| 男人的天堂成人在线| 亚洲毛片网站| 亚洲激情二区| 影音先锋一区| 黄色av日韩| 欧美精品一区二区三区在线看午夜 | 欧美三级在线| 久久国产精品亚洲va麻豆| 国产亚洲一区二区三区在线播放| 亚洲黑丝一区二区| 亚洲午夜精品国产| 黄色成人在线网址| 在线播放精品| 亚洲国产精品一区| 亚洲视频播放| 久久xxxx| 激情综合亚洲| 国产一区二区三区奇米久涩| 国产日韩一区欧美| 性一交一乱一区二区洋洋av| 欧美成人dvd在线视频| 午夜精品亚洲| 亚洲国产日本| 免费日韩精品中文字幕视频在线| 久久免费99精品久久久久久| 欧美激情视频一区二区三区免费| 国产在线成人| 99视频+国产日韩欧美| 国产精品久久久久久久久婷婷| 国产精品夜夜夜一区二区三区尤| 美日韩精品免费| 欧美特黄一区| 亚洲欧美日韩视频二区 | 欧美福利一区| 欧美日韩天天操| 99热免费精品| 欧美激情综合色综合啪啪| 最新日韩在线| 久久婷婷人人澡人人喊人人爽| 国产一区亚洲| 国产精品日本| 国产精品yjizz| 一区二区三区欧美成人| 久久亚洲美女| 国产欧美高清| 激情国产一区| 久久尤物视频| 国产精品免费在线| 亚洲无线一线二线三线区别av| 国产精品一区二区三区观看| 亚洲图色在线| 欧美成人综合| 国产一区二区三区奇米久涩 | 极品av少妇一区二区| 国产一区二区你懂的| 欧美日本免费| 欧美中文日韩| 国产欧美日韩一级| 精品动漫3d一区二区三区免费版 | 在线看片一区| 久久夜色精品| 亚洲综合欧美日韩| 国产婷婷精品| 在线视频观看日韩| 国产一区视频观看| 欧美日韩精品不卡| 久久久久久久久久码影片| 亚洲美女视频在线免费观看| 欧美视频二区| 欧美日韩一区二区三区在线视频 | 亚洲婷婷免费| 欧美激情第8页| 中文精品视频一区二区在线观看| 欧美视频四区| 欧美日韩在线不卡一区| 欧美在线视频二区| 久久国产直播| 美日韩免费视频| 欧美亚洲一区| 午夜在线一区| 久久激情一区| 噜噜噜噜噜久久久久久91| 国产精品一区亚洲| 国产农村妇女精品一二区| 亚洲毛片网站| 一本一道久久综合狠狠老精东影业 | 精品动漫3d一区二区三区免费| 欧美在线日韩| 国产一区二区无遮挡| 欧美日韩1区| 欧美日韩三级| 在线电影一区| 国产九九精品| 久久蜜桃资源一区二区老牛| 欧美成人首页| 亚洲成色最大综合在线| 国产亚洲一区在线播放| 久久久综合香蕉尹人综合网| 午夜精品美女久久久久av福利| 国产综合精品一区| 伊人久久婷婷色综合98网| 一本久道综合久久精品| 午夜一级久久| 国内一区二区在线视频观看 | 黑人巨大精品欧美一区二区小视频| 欧美日韩国产色综合一二三四| 国产精品豆花视频| 国产欧美高清| 欧美日韩免费精品| 一区二区三区四区五区在线| 久久国产直播| 国内精品福利| 亚洲一区二三| 国产伊人精品| 国产一区二区三区成人欧美日韩在线观看 | av不卡在线看| 免费日韩av片| 极品中文字幕一区| 亚洲欧美日韩精品久久久| 欧美ab在线视频| 欧美日本一区二区视频在线观看 | 亚洲在线成人| 国模一区二区三区| 久久久久久久欧美精品| 日韩天天综合| 精品动漫3d一区二区三区免费| 香蕉久久国产| 国产亚洲精品v| 欧美日韩在线精品| 欧美在线3区| 国产乱人伦精品一区二区 | 欧美在线三区| 亚洲一区自拍| 99在线观看免费视频精品观看| 久久国产一区二区| 中文精品视频| 亚洲人体一区| 欧美日韩综合另类| 久久一区亚洲| 久久精品1区| 亚洲一区二区精品在线观看| 亚洲日本无吗高清不卡| 国模精品娜娜一二三区| 欧美日韩日本国产亚洲在线| 久久精品综合一区| 亚洲一区中文| 美女黄网久久| 久久久水蜜桃| 欧美一区二区三区四区夜夜大片| 国产伦精品一区二区三区照片91 | 久久精品一区二区国产| 亚洲区一区二区三区| 精品白丝av| 亚洲高清资源综合久久精品| 狠久久av成人天堂| 国产精品yjizz| 国精品一区二区| 黄色国产精品| 在线观看视频免费一区二区三区| 欧美高清一区| 欧美午夜视频在线| 国内外成人免费视频| 国产一区日韩欧美| 激情欧美一区二区三区| 在线看无码的免费网站| 91久久夜色精品国产九色| 中日韩在线视频| 国产精品一区二区你懂得| 国产欧美日韩亚洲| 久久精品1区| 国产精品v欧美精品v日本精品动漫| 国产伊人精品| 亚洲一区高清| 午夜视频一区| 99香蕉国产精品偷在线观看| 模特精品在线| 亚洲午夜极品| 免费在线欧美黄色| 极品裸体白嫩激情啪啪国产精品| 亚洲精品人人| 久久久天天操| 亚洲经典在线看| 裸体丰满少妇做受久久99精品 | 欧美.www| 日韩午夜免费| 午夜精品av| 亚洲精品美女| 欧美精品一卡| 国产偷久久久精品专区| 欧美视频不卡| 性欧美videos另类喷潮| 黄色在线成人| 久久在线精品| 国产欧美一区二区色老头| 欧美成人dvd在线视频| 国产欧美日韩一区二区三区在线| 女生裸体视频一区二区三区| 99人久久精品视频最新地址| 欧美国内亚洲| 欧美亚洲自偷自偷| 在线视频欧美一区| 激情久久五月| 欧美精品1区| 久久国产精品免费一区| 99精品福利视频| 在线观看一区| 国产在线欧美| 欧美日韩 国产精品| 久久精品女人的天堂av| 国产精品久久777777毛茸茸| 亚洲午夜久久久久久尤物| 欧美大片一区| 欧美二区视频| 午夜精品久久99蜜桃的功能介绍| 亚洲综合首页| 免费一区视频| 久久久久久精| 久久最新视频| 午夜精品亚洲一区二区三区嫩草| 免费看的黄色欧美网站| 欧美一级二区| 毛片一区二区| 久久先锋资源| 欧美91大片| 欧美日韩免费观看一区| 欧美精选一区| 亚洲午夜一区| 亚洲精品一级| 国产欧美日韩一区| 国产乱人伦精品一区二区 | 欧美黄免费看| 欧美激情aⅴ一区二区三区| 久久久久久久久久码影片| 久久婷婷影院| 欧美日韩精品免费观看视一区二区| 欧美激情第六页| 欧美成人一区二免费视频软件| 欧美.日韩.国产.一区.二区| 欧美成熟视频| 亚洲成人在线| 国产农村妇女毛片精品久久莱园子| 国产精品一区视频网站| 久久在线精品| 亚洲黄色视屏| 性欧美videos另类喷潮| 欧美喷水视频| 国产精品三上| 国产日韩一区二区三区| 99国产精品久久久久老师| 亚洲精品视频一区二区三区| 红桃视频国产精品| 一区二区三区免费看| 久久激情网站| 在线成人av| 鲁大师影院一区二区三区| 国产精品国产三级欧美二区| 亚洲人www| 久久亚洲二区| 亚洲二区视频| 久久精品主播| 亚洲精品孕妇| 欧美.日韩.国产.一区.二区| 亚洲日本视频| 欧美精品一区在线发布| 国产九九精品| 亚洲承认在线| 欧美激情视频一区二区三区在线播放 | 欧美日韩亚洲一区二区三区在线| 亚洲国产精品一区在线观看不卡| 久久成人亚洲| 亚洲看片一区| 欧美性色综合| 国产精品一区二区在线观看| 国产一区二区三区无遮挡| 国产精品试看| 亚洲黄色一区| 国产精品啊啊啊| 久久精品一区二区国产| 亚洲二区三区四区| 欧美日本不卡| 久久精品男女| 国产精品一区二区在线观看| 亚洲二区精品| 尹人成人综合网| 欧美体内she精视频在线观看| 久久精品动漫| 另类亚洲自拍| 亚洲欧美日韩在线观看a三区| 亚洲精品人人| 国产一区亚洲| 国产精品v欧美精品v日韩| 欧美一区不卡| 久色成人在线| 久久先锋资源| 老司机精品导航| 久久久久91| 久久一综合视频| 玖玖玖国产精品| 久久综合影视| 欧美日韩在线一二三| 欧美日韩综合另类| 红桃视频国产一区| 精品成人免费| 最近看过的日韩成人| 永久域名在线精品| 亚洲看片免费| 亚洲一区二区在| 麻豆久久婷婷| 欧美区一区二| 亚洲高清激情| 国产日韩欧美一区二区| 在线亚洲精品| 亚洲免费综合| 欧美1区2区| 亚洲香蕉网站| 99在线|亚洲一区二区| 国产精品视区| 欧美1级日本1级| 一区二区视频在线观看| 一本色道久久综合亚洲精品不卡| 国产精品日韩高清| 久久先锋资源| 精品91在线| 欧美专区一区二区三区| 欧美日本一区| 9国产精品视频| 久久精选视频| 激情综合久久| 美女久久一区| 永久久久久久| 久久日韩精品| 亚洲区一区二| 欧美在线1区| 一区二区不卡在线视频 午夜欧美不卡'| 国产精品入口| 国产综合精品| 欧美亚洲免费在线| 亚洲午夜一区| 久久久99爱| 99亚洲一区二区| 欧美日韩国产综合视频在线| 中文日韩在线| 狠狠色综合一区二区| 免费视频久久| 日韩视频在线播放| 欧美日本中文| 久久av一区二区| 亚洲欧洲日本一区二区三区| 久久久久网址| 国产日韩亚洲| 在线日韩中文| 欧美欧美全黄| 另类天堂av| 亚洲少妇自拍| 亚洲黄色毛片| 亚洲视频高清| 国产精品a久久久久| 久久久久久九九九九| 国产精品人人爽人人做我的可爱| 亚洲特级毛片| 欧美日本精品| 欧美成人中文| 久久亚洲一区二区| 亚洲综合99| 一本色道久久综合亚洲精品不 | 欧美片第1页综合| 蜜桃久久精品乱码一区二区| 一区二区三区四区五区在线| 在线观看成人一级片| 韩日视频一区|