1. 程式人生 > >23、H5新增js屬性之本地儲存

23、H5新增js屬性之本地儲存

H5新增js方法之本地儲存

Storage

sessionStorage

session臨時回話,從頁面開啟到頁面關閉的時間段

視窗的臨時儲存,頁面關閉,本地儲存消失

localStorage

永久儲存(可以手動刪除資料)

Storage的特點

儲存量限制 ( 5M )

客戶端完成,不會請求伺服器處理

sessionStorage資料是不共享、 localStorage共享

Storage API
setItem():
設定資料,(key,value)型別,型別都是字串
可以用獲取屬性的形式操作
getItem():
獲取資料,通過key來獲取到相應的value
removeItem():
刪除資料,通過key來刪除相應的value
clear():


刪除全部儲存的值

儲存事件:
當資料有修改或刪除的情況下,就會觸發storage事件
在對資料進行改變的視窗物件上是不會觸發的
Key : 修改或刪除的key值,如果呼叫clear(),key為null
newValue  :  新設定的值,如果呼叫removeStorage(),key為null
oldValue :  呼叫改變前的value值
storageArea : 當前的storage物件
url :  觸發該指令碼變化的文件的url
注:session同窗口才可以,例子:iframe操作

<!doctype html><!--聲明當前文件為html文件-->
<html lang="en"><!--語言為英語-->
	<head><!--頭部-->
		<meta charset="UTF-8"><!--字元編碼:utf-8國際編碼  gb2312中文編碼-->
		<meta name="Keywords" content="關鍵詞">
		<meta name="Description" content="描述">
		<title>Document</title>
		<style>/*css樣式表的衣櫃*/


		</style>
	</head>
	<body><!--身體-->
		<input type="button" value="新增資料" id="btn1">
		<input type="button" value="獲取資料" id="btn2">
		<input type="button" value="刪除資料" id="btn3">
		<input type="text" id="txt">
		<script>
			var btn1 = document.getElementById("btn1");
			var btn2 = document.getElementById("btn2");
			var btn3 = document.getElementById("btn3");
			var txt = document.getElementById("txt");
			//新增資料
			btn1.onclick = function(){
				sessionStorage.setItem("key",txt.value);
			}
			//獲取資料
			btn2.onclick = function(){
				var val = sessionStorage.getItem("key");
				alert(val);
			}
			//刪除資料
			btn3.onclick = function(){
				sessionStorage.removeItem("key");
			}
		</script>
	</body>
</html>


類似同步購物車;

<!doctype html><!--聲明當前文件為html文件-->
<html lang="en"><!--語言為英語-->
	<head><!--頭部-->
		<meta charset="UTF-8"><!--字元編碼:utf-8國際編碼  gb2312中文編碼-->
		<meta name="Keywords" content="關鍵詞">
		<meta name="Description" content="描述">
		<title>Document</title>
		<style>/*css樣式表的衣櫃*/


		</style>
	</head>
	<body><!--身體-->
		<input type="checkbox" value="張三" >張三</br>
		<input type="checkbox" value="李四" >李四</br>
		<input type="checkbox" value="王五" >王五</br>
		<input type="checkbox" value="陳麻子" >陳麻子</br>
	</body>
	<script>
		var oInput = document.getElementsByTagName("input");
		for (var i=0;i<oInput.length ;i++ )
		{
			oInput[i].onclick = function(){
				if (this.checked)
				{
					window.localStorage.setItem("chec",this.value);
				}else{
					window.localStorage.setItem("onchec",this.value);
				}
			}
		}
		window.addEventListener("storage",function(ev){
			if (ev.key == "chec")
			{
				for (var i=0;i<oInput.length ;i++  )
				{
					if (ev.newValue == oInput[i].value)
					{
						oInput[i].checked = true;
					}
				}
			}else if(ev.key == "onchec"){
				for (var i=0;i<oInput.length ;i++  )
				{
					if (ev.newValue == oInput[i].value)
					{
						oInput[i].checked = false;
					}
				}
			}
		},false);
	</script>
</html>