亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

html5指南-5.使用web storage存儲鍵值對的數據

2024-08-26 00:15:04
字體:
來源:轉載
供稿:網友
本節課的內容是介紹web storage,使用它在瀏覽器里存儲鍵值對的數據,功能上像以前的cookie一樣,不過他更好,存儲的數據可以更大。有兩種類型的web storage:local storage和session storage,他們使用相同的實現機制,只是可見性和生命周期不同。
1.使用local storage
我們使用localStorage對象來訪問local storage,他返回Storage對象,Storage用來存儲鍵值對的數據,他有下面一些屬性和方法:
clear():清楚存儲的鍵值對數據;
getItem(<key>):通過key獲取value值;
key(<index>):通過索引獲取key值;
length:返回鍵值對的個數;
removeItem(<key>):通過key移出指定數據;
setItem(<key>,<value>):添加一個鍵值對,當指定key的鍵值對存在,則實現更新操作;
[<key>]:通過數組下標的方式,使用key獲取指定value值。
Storage對象允許我們存儲key和value都是字符串形式的鍵值對數據,key是唯一的,意味著當我們使用setItem方法添加鍵值對時,如果key值已經存在的話,將實現更新的操作。我們來看下面的例子:

復制代碼 代碼如下:www.CuoXIn.com

<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style>
body > *{float: left;}
table{border-collapse: collapse;margin-left: 50px;}
th, td{padding: 4px;}
th{text-align: right;}
input{border: thin solid black;padding: 2px;}
label{min-width: 50px;display: inline-block;text-align: right;}
#countmsg, #buttons{margin-left: 50px;margin-top: 5px;margin-bottom: 5px;}
</style>
</head>
<body>
<div>
<div>
<label>Key:</label><input id="key" placeholder="Enter Key" /></div>
<div>
<label>Value:</label><input id="value" placeholder="Enter Value" /></div>
<div id="buttons">
<button id="add">Add</button>
<button id="clear">Clear</button>
</div>
<p id="countmsg">There are <span id="count"></span>items</p>
</div>
<table id="data" border="1">
<tr>
<th>Item Count:</th>
<td id="count">-</td>
</tr>
</table>
<script>
displayData();
var buttons = document.getElementsByTagName('button');
for (var i = 0; i < buttons.length; i++) {
buttons[i].onclick = handleButtonPress;
}
function handleButtonPress(e) {
switch (e.target.id) {
case 'add':
var key = document.getElementById('key').value;
var value = document.getElementById('value').value;
localStorage.setItem(key, value);
break;
case 'clear':
localStorage.clear();
break;
}
displayData();
}
function displayData() {
var tableElement = document.getElementById('data');
tableElement.innerHTML = '';
var itemCount = localStorage.length;
document.getElementById('count').innerHTML = itemCount;
for (var i = 0; i < itemCount; i++) {
var key = localStorage.key(i);
var val = localStorage.getItem(key);
tableElement.innerHTML += '<tr><th>' + key + ':</th><td>' + val + '</td></tr>';
}
}
</script>
</body>
</html>

我們來看運行結果


瀏覽器不能刪除我們通過localStorage創建的數據,除非用戶刪除它。
2.監聽Storage事件
通過local storage存儲的數據對同源的文檔具有可見性,比如你打開兩個chrome瀏覽器訪問同一個url地址,在任何一個頁面上創建的local storage對另外一個頁面也是可見的。但是如果用別的瀏覽器(如firefox)打開相同url地址,local storage是不可見的,因為他們不同源了。Storage事件就是用來監聽storage的內容發生改變的,下面我們看他包含哪些屬性:
key:返回發生改變的key值;
oldValue:返回發生改變key值以前的value值;
newValue:返回發生改變key值新的value值;
url:發生改變的url地址;
storageArea:返回發生改變的Storage對象(是local storage還是session storage)。
下面我們看個例子:

復制代碼 代碼如下:www.CuoXIn.com

<!DOCTYPE HTML>
<html>
<head>
<title>Storage</title>
<style>
table{border-collapse: collapse;}
th, td{padding: 4px;}
</style>
</head>
<body>
<table id="data" border="1">
<tr>
<th>key</th>
<th>oldValue</th>
<th>newValue</th>
<th>url</th>
<th>storageArea</th>
</tr>
</table>
<script>
var tableElement = document.getElementById('data');
window.onstorage = function (e) {
var row = '<tr>';
row += '<td>' + e.key + '</td>';
row += '<td>' + e.oleValue + '</td>';
row += '<td>' + e.newValue + '</td>';
row += '<td>' + e.url + '</td>';
row += '<td>' + (e.storageArea == localStorage) + '</td></tr>';
tableElement.innerHTML += row;
}
</script>
</body>
</html>

我們在例1中增刪改storage的數據,會在例2頁面上顯示出來。例2在chrome瀏覽器中運行正常,firefox沒有反應,其他瀏覽器沒有測試。
運行結果


3.使用session storage
session storage在使用上和local storage一樣,只是他的訪問性上只限于當前頁面,并且頁面關閉后會消失,我們通過sessionStorage來訪問它。

復制代碼 代碼如下:www.CuoXIn.com

<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style>
body > *{float: left;}
table{border-collapse: collapse;margin-left: 50px;}
th, td{padding: 4px;}
th{text-align: right;}
input{border: thin solid black;padding: 2px;}
label{min-width: 50px;display: inline-block;text-align: right;}
#countmsg, #buttons{margin-left: 50px;margin-top: 5px;margin-bottom: 5px;}
</style>
</head>
<body>
<div>
<div>
<label>Key:</label><input id="key" placeholder="Enter Key" /></div>
<div>
<label>Value:</label><input id="value" placeholder="Enter Value" /></div>
<div id="buttons">
<button id="add">Add</button>
<button id="clear">Clear</button>
</div>
<p id="countmsg">There are <span id="count"></span>items</p>
</div>
<table id="data" border="1">
<tr>
<th>Item Count:</th>
<td id="count">-</td>
</tr>
</table>
<iframe src="storage.html" width="500" height="175"></iframe>
<script>
displayData();
var buttons = document.getElementsByTagName("button");
for (var i = 0; i < buttons.length; i++) {
buttons[i].onclick = handleButtonPress;
}
function handleButtonPress(e) {
switch (e.target.id) {
case 'add':
var key = document.getElementById("key").value;
var value = document.getElementById("value").value;
sessionStorage.setItem(key, value);
break;
case 'clear':
sessionStorage.clear();
break;
}
displayData();
}
function displayData() {
var tableElement = document.getElementById('data');
tableElement.innerHTML = '';
var itemCount = sessionStorage.length;
document.getElementById('count').innerHTML = itemCount;
for (var i = 0; i < itemCount; i++) {
var key = sessionStorage.key(i);
var val = sessionStorage.getItem(key);
tableElement.innerHTML += "<tr><th>" + key + ":</th><td>" + val + "</td></tr>";
}
}
</script>
</body>
</html>

運行效果


你在例3中做任何修改,例2的頁面不會發生任何改變。
總結: 
sessionStorage用于本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問并且當會話結束后數據也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。
localStorage用于持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。
web storage和cookie的區別:Web Storage的概念和cookie相似,區別是它是為了更大容量存儲設計的。Cookie的大小是受限的,并且每次你請求一個新的頁面的時候Cookie都會被發送過去,這樣無形中浪費了帶寬,另外cookie還需要指定作用域,不可以跨域調用。除此之外,Web Storage擁有setItem,getItem,removeItem,clear等方法,不像cookie需要前端開發者自己封裝setCookie,getCookie。還有,web storage每個域(包括子域)有獨立的存儲空間,各個存儲空間是完全獨立的,因此不會造成數據混亂。
但是Cookie也是不可以或缺的:Cookie的作用是與服務器進行交互,作為HTTP規范的一部分而存在 ,而Web Storage僅僅是為了在本地“存儲”數據而生。
源碼下載

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产97在线亚洲| 色先锋久久影院av| 国产精品视频1区| 亚洲国产精久久久久久久| 国产精品99久久久久久久久| 成人深夜直播免费观看| 欧美中文在线观看国产| 欧美日韩福利视频| 日韩av在线免费播放| 欧洲永久精品大片ww免费漫画| 亚洲一级免费视频| 综合国产在线视频| 91精品啪在线观看麻豆免费| 国产亚洲美女精品久久久| 日韩在线视频线视频免费网站| 大荫蒂欧美视频另类xxxx| 国模叶桐国产精品一区| 欧美精品www| 欧美激情极品视频| 欧美激情第99页| 国产又爽又黄的激情精品视频| 欧美日韩亚洲一区二区三区| 欧美在线亚洲在线| 成人黄色短视频在线观看| 日韩免费观看网站| 最近2019中文字幕mv免费看| 欧美性猛交xxxx乱大交蜜桃| 国产精品96久久久久久又黄又硬| 国产欧美日韩丝袜精品一区| 在线观看日韩视频| 亚洲福利影片在线| 国产精品视频午夜| 国模精品视频一区二区| 国产91久久婷婷一区二区| 欧美另类在线播放| 国产精品∨欧美精品v日韩精品| 亚洲欧美制服丝袜| 日韩成人高清在线| 日韩精品视频免费在线观看| 国内精品久久久久伊人av| 国产精品午夜一区二区欲梦| 91黑丝高跟在线| 亚洲国模精品私拍| 欧美性xxxxx| 国产综合福利在线| 国产一区二区av| 91国偷自产一区二区三区的观看方式| 国产精品高精视频免费| 久久久久久久一区二区| 欧美激情区在线播放| 欧美电影免费看| 亚洲国产成人在线播放| 日韩精品免费一线在线观看| 粗暴蹂躏中文一区二区三区| 九九久久综合网站| 国产精品99久久久久久久久久久久| 日韩av最新在线观看| 亚洲国产私拍精品国模在线观看| 色综合伊人色综合网站| 国产精品18久久久久久麻辣| 中文字幕精品www乱入免费视频| 欧美日韩裸体免费视频| 亚洲精品99久久久久中文字幕| 亚洲男人av在线| 欧美成人四级hd版| 国产精品一久久香蕉国产线看观看| 久久久免费精品| 97精品国产97久久久久久春色| 在线观看欧美www| 美女黄色丝袜一区| 亚洲国产高清自拍| 久久夜精品va视频免费观看| 亚洲人成电影在线观看天堂色| 伊人久久综合97精品| 国产精品99久久久久久www| 9.1国产丝袜在线观看| 26uuu另类亚洲欧美日本老年| 亚洲国产成人精品一区二区| 亚洲国产精品久久久久秋霞不卡| 欧美日韩亚洲视频一区| 91精品视频专区| 中文字幕日韩欧美精品在线观看| 97av视频在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 精品国产电影一区| 久久69精品久久久久久国产越南| 日韩小视频在线观看| www日韩欧美| 91久久精品美女高潮| 亚洲影视九九影院在线观看| 亚洲欧美在线免费观看| 久久人人看视频| 啊v视频在线一区二区三区| 亚洲精品av在线播放| 韩剧1988免费观看全集| 亚洲人午夜精品| 国产精品久久久久久久久借妻| 国产精品香蕉国产| 国产成人精品一区二区三区| 日本一区二区在线免费播放| 国产一区二区三区丝袜| 丝袜美腿精品国产二区| 亚洲欧洲在线播放| 亚洲欧美日韩国产中文专区| 国产精品三级久久久久久电影| 日韩激情av在线免费观看| 91视频免费在线| 精品视频在线播放| 91在线观看免费高清完整版在线观看| 亚洲男女自偷自拍图片另类| 亚洲成人av在线播放| 热re91久久精品国99热蜜臀| 成人免费福利在线| 综合网日日天干夜夜久久| 亚洲精品成人免费| 91精品在线播放| 91精品成人久久| zzijzzij亚洲日本成熟少妇| 2021久久精品国产99国产精品| 欧美一区二区大胆人体摄影专业网站| 91探花福利精品国产自产在线| 欧美视频一二三| 亚洲欧美在线播放| 欧美激情高清视频| 日韩在线国产精品| 欧美亚洲视频在线观看| 国a精品视频大全| 亚洲精品欧美日韩专区| 91精品国产高清久久久久久91| 中文字幕国产精品久久| 91免费看片网站| 国产99久久精品一区二区永久免费| 日韩在线观看电影| 4438全国成人免费| 日韩最新免费不卡| 欧美精品精品精品精品免费| 成人网在线免费观看| 亚洲免费精彩视频| 2018国产精品视频| 国产精品电影网| 最近2019中文字幕一页二页| 成人欧美一区二区三区在线湿哒哒| 亚洲视频在线视频| 91视频免费在线| 欧美激情精品久久久久久蜜臀| 日韩中文在线中文网在线观看| 亚洲一区久久久| 国产一区二区三区在线观看视频| 91九色综合久久| 伊人久久精品视频| 97超级碰在线看视频免费在线看| 69av在线播放| 91在线观看免费网站| 国产精品成人一区二区| 国产一区二区三区中文| 日本精品一区二区三区在线| 久久久这里只有精品视频| 97在线观看视频| 久久久99久久精品女同性| 国产欧美一区二区三区在线看| 欧美精品电影在线| 国产精品久久久久久久久久三级| 97福利一区二区| 中文字幕免费精品一区高清|