html 09-HTML5詳解(三)
阿新 • • 發佈:2020-12-15
09-HTML5詳解(三)
#Web 儲存
隨著網際網路的快速發展,基於網頁的應用越來越普遍,同時也變的越來越複雜,為了滿足各種各樣的需求,會經常性在本地儲存大量的資料,傳統方式我們以document.cookie來進行儲存的,但是由於其儲存大小隻有4k左右,並且解析也相當的複雜,給開發帶來諸多不便,HTML5規範則提出解決方案。
#H5 中有兩種儲存的方式
1、window.sessionStorage
會話儲存:
-
儲存在記憶體中。
-
生命週期為關閉瀏覽器視窗。也就是說,當視窗關閉時資料銷燬。
-
在同一個視窗下資料可以共享。
2、window.localStorage
本地儲存:
-
有可能儲存在瀏覽器記憶體裡,有可能在硬盤裡。
-
永久生效,除非手動刪除(比如清理垃圾的時候)。
-
可以多視窗共享。
#Web 儲存的特性
(1)設定、讀取方便。
(2)容量較大,sessionStorage 約5M、localStorage 約20M。
(3)只能儲存字串,可以將物件 JSON.stringify() 編碼後儲存。
#常見 API
設定儲存內容:
setItem(key, value);
PS:可以新增一個 item,也可以更新一個 item。
讀取儲存內容:
getItem(key);
根據鍵,刪除儲存內容:
removeItem(key);
清空所有儲存內容:
clear();
根據索引值來獲取儲存內容:
key(n);
sessionStorage 的 API 舉例:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="text"/>
<button>sesssionStorage儲存</button>
<button>sesssionStorage獲取</button>
<button>sesssionStorage更新</button>
<button>sesssionStorage刪除</button>
<button>sesssionStorage清除</button>
<script>
//在h5中提供兩種web儲存方式
// sessionStorage session(會話,會議) 5M 當視窗關閉是資料銷燬 記憶體
// localStorage 20M 永久生效 ,除非手動刪除 清理垃圾 硬碟上
var txt = document.querySelector('input');
var btns = document.querySelectorAll('button');
// sessionStorage儲存資料
btns[0].onclick = function () {
window.sessionStorage.setItem('userName', txt.value);
window.sessionStorage.setItem('pwd', '123456');
window.sessionStorage.setItem('age', 18);
}
// sessionStorage獲取資料
btns[1].onclick = function () {
txt.value = window.sessionStorage.getItem('userName');
}
// sessionStorage更新資料
btns[2].onclick = function () {
window.sessionStorage.setItem('userName', txt.value);
}
// sessionStorage刪除資料
btns[3].onclick = function () {
window.sessionStorage.removeItem('userName');
}
// sessionStorage清空資料
btns[4].onclick = function () {
window.sessionStorage.clear();
}
</script>
</body>
</html>
效果如下:
如上圖所示,我們可以在 Storage 選項卡中檢視 Session Storage 和Local Storage。
localStorage 的 API 舉例:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="text"/>
<button>localStorage儲存</button>
<button>localStorage獲取</button>
<button>localStorage更新</button>
<button>localStorage刪除</button>
<button>localStorage清除</button>
<script>
/*
* localStorage
* 資料存在硬碟上
* 永久生效
* 20M
* */
var txt = document.querySelector('input');
var btns = document.querySelectorAll('button');
// localStorage儲存資料
btns[0].onclick = function () {
window.localStorage.setItem('userName', txt.value);
}
// localStorage儲存資料
btns[1].onclick = function () {
txt.value = window.localStorage.getItem('userName');
}
// localStorage刪除資料
btns[3].onclick = function () {
window.localStorage.removeItem('userName');
}
</script>
</body>
</html>
#案例:記住使用者名稱和密碼
程式碼:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<label for="">
使用者名稱:<input type="text" class="userName"/>
</label>
<br/><br/>
<label for="">
密 碼:<input type="text" class="pwd"/>
</label>
<br/><br/>
<label for="">
<input type="checkbox" class="check" id=""/>記住密碼
</label>
<br/><br/>
<button>登入</button>
<script>
var userName = document.querySelector('.userName');
var pwd = document.querySelector('.pwd');
var chk = document.querySelector('.check');
var btn = document.querySelector('button');
// 當點選登入的時候 如果勾選“記住密碼”,就儲存密碼;否則就清除密碼
btn.onclick = function () {
if (chk.checked) {
// 記住資料
window.localStorage.setItem('userName', userName.value);
window.localStorage.setItem('pwd', pwd.value);
} else {
// 清除資料
window.localStorage.removeItem('userName');
window.localStorage.removeItem('pwd');