作為html5中Web Storage的一種存儲方式,localStorage和sessionStorage一樣都是用來存儲客戶端臨時信息的對象。
W3c上給的介紹是這兩者區別在於前者用於持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。而sessionStorage存儲的數據只有在同一個會話中的頁面才能訪問並且當會話結束后數據也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。個人的理解是你在打開一個頁面時記錄sessionStorage,當你把頁面或者瀏覽器關閉時session中的數據即銷毀。
接下來是測試。
先創建一個index.html,代碼:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<input type="button" value="Login" onclick="submit()" />
<input type="text" name="text" id="text" />
<input type="button" value="show" onclick="show()" />
<a href="33.html" target="_blank">33.html</a>
</body>
<script>
function submit() {
var str = document.getElementById("text").value.trim();
setInfo(str);
document.getElementById("text").value = "";
}
//儲存數據
function setInfo(name) {
var storage = window.sessionStorage;
storage.setItem('name', name);
}
//顯示數據
function show() {
var storage = window.sessionStorage;
var str = "your name is " + storage.getItem("name");
document.getElementById("text").value = str;
}
</script>
</html>
先點擊show按鈕,在文本框出現的是“your name is null”,之后只需在文本框中輸入數據再點擊login按鈕就能把數據存儲到sessionStorage。如圖
現在點擊show 文本框就顯示“your name is xiaoming”。
然后再創建一個33.html,代碼:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
var str = window.sessionStorage;
alert(str.getItem("name"));
</script>
</head>
<body>
</body>
</html>
最后只要點擊index.html的33.html跳轉到該頁面就能發現sessionstorage內數據是共享的。