html5本地存储-sessionStorage,localStorage的使用

 一、本地存储的基本介绍  

       说到本地存储,我们最熟悉的应该就是cookie存储,数据存储到计算机中,通过浏览器控制添加与删除数据。那cookie有什么特点呢?

①存储限制域名 100 cookie, 每组值大小 4KB
②客户端、服务器端,都会请求服务器(头信息)
③页面间的
cookie 是共享的
       具体cookie是怎么操作的,我会在javascript栏目的博客中详细叙述的。接下来我们一起接触一下html5中的本地存储-sessionStorage和localStorage.
       session
为临时会话,从页面打开到页面关闭的时间段,窗口的临时存储,页面关闭,本地存储就会消失。localStorage为永久存储,当然可以手动删除数据。那storage存储相对于cookie它的特点有哪些呢?
①存储量将会达到5M
②客户端完成,不会请求服务器处理
③sessionStorage数据是不会共享的,而localStorage数据是会共享的
       

 二、storageAPI的使用

setItem()
设置数据,key\value类型,类型都是字符串
可以用获取属性的形式操作

getItem()
获取数据,通过key来获取到相应的value

removeItem()
除数据,通过key来删除相应的value

clear()
删除全部存储的值

通过上面的API,我们来做一个<保存注册信息>的小应用,代码如下:

<span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
textarea{width:400px;height:400px;border:1px solid black;}
</style>
<script>
window.onload = function(){
	
	var aInput = document.getElementsByTagName('input');
	var oT = document.getElementsByTagName('textarea')[0];
	
	if( localStorage.getItem('text') ){
		aInput[0].value = <span style="color:#FF0000;">localStorage.getIte</span>m('text');
	}
    if( localStorage.getItem('password') ){
		aInput[1].value = localStorage.getItem('password');
	}
	
	if( localStorage.getItem('radio') ){
		aInput[localStorage.getItem('radio')].checked = true;	
	}
	
	if(localStorage.getItem('oT')){
		oT.value = localStorage.getItem('oT');
	}
	//关闭浏览器的时候先将数据存储起来
	window.onunload = function(){
		
		if( aInput[0].value ){
			<span style="color:#FF0000;">localStorage.setItem</span>('text',aInput[0].value);
		}
		if( aInput[1].value ){
			localStorage.setItem('password',aInput[1].value);
		}	
		for(var i =2;i < aInput.length;i++){
			if( aInput[i].checked ){
				localStorage.setItem('radio',i);
			}
		}
		if( oT.value ){
			localStorage.setItem('oT',oT.value);
		}
	};		
};
</script>
</head>

<body>
<p>
	姓名:<input type='text' />
</p>
<p>
	密码:<input type='password' />
</p>
<p>
	<input type='radio' name='sex' value='man'/>男
    <input type='radio' name='sex' value='women'/>女
</p>
<p>
 备注:<br/>
 <textarea> 
 
 </textarea>
</p>
</body>
</html>
</span>
三.存储事件

       当数据有修改或删除的情况下,就会触发storage事件,在对数据进行改变的窗口对象上是不会触发的.现在我们来了解一下存储事件下的属性值。

Key: 修改或删除的 key 值,如果调用 clear(),key null
newValue  新设置的值,如果调用 removeStorage (),key null
oldValue 调用改变前的 value
storageArea : 当前的 storage 对象
url 触发该脚本变化的文档的 url
注: session 同窗口才可以 , 例子: iframe 操作

接下来我们利用这个事件来做一个<同步购物车>的小例子,代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
window.onload = function(){
	
	var aInput = document.getElementsByTagName('input');
	
	for(var i = 0;i < aInput.length;i++){
		
		aInput[i].onclick = function(){
			
			if( this.checked ){
				localStorage.setItem(this.value,1);
			}else{
				localStorage.setItem(this.value,0);	
			}	
		};
	}
	
	window.onstorage = function(){
		
		for(var i = 0;i < aInput.length;i++){
			
			if( localStorage.getItem(aInput[i].value) == 1){
				aInput[i].checked = true;
			} else if( localStorage.getItem(aInput[i].value) == 0 ){
				aInput[i].checked = false;
			} 
	    }
			
	};	
};
</script>
</head>

<body>
<input type='checkbox' value='苹果'/>苹果<br/>
<input type='checkbox' value='西瓜'/>西瓜<br/>
<input type='checkbox' value='香蕉'/>香蕉<br/>
<input type='checkbox' value='荔枝'/>荔枝<br/>
</body>
</html>





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTML5本地存储是一种在浏览器中存储数据的机制,它允许网页应用程序在客户端(即用户的浏览器)中存储和检索数据,而无需依赖于服务器。其中,localStoragesessionStorage是两种常用的本地存储方式。 localStorage是一种持久化的本地存储方式,它可以在浏览器关闭后仍然保留数据。存储在localStorage中的数据没有过期时间,除非手动删除或者通过代码清除。localStorage的数据是针对某个域名下的所有页面共享的,即同一个域名下的不同页面可以共享同一份localStorage数据。 sessionStorage是一种会话级别的本地存储方式,它只在当前会话(即浏览器窗口或标签页)中有效。当会话结束(窗口或标签页关闭)时,sessionStorage中的数据也会被清除。与localStorage不同,sessionStorage的数据只在同一个窗口或标签页中共享,不同窗口或标签页之间的sessionStorage数据是隔离的。 它们的区别主要有以下几点: 1. 生命周期:localStorage的数据在浏览器关闭后仍然保留,而sessionStorage的数据在会话结束后被清除。 2. 作用域:localStorage的数据在同一个域名下的所有页面共享,而sessionStorage的数据只在同一个窗口或标签页中共享。 3. 存储大小:localStorage的存储容量通常比sessionStorage大,一般为5MB或更大,而sessionStorage的存储容量通常较小,一般为5MB或更小。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值