HTML5 localStorage and sessionStorage
转载至:http://blog.csdn.net/fdipzone/article/details/25517615
HTML5 提供两种web存储方法,localStorage 与 sessionStorage
localStorage 与 sessionStorage 区别
localStorage没有过期时间,只要不clear或remove,数据会一直保存。
sessionStorage 针对一个session进行数据存储,生命周期与session相同,当用户关闭浏览器后,数据将被删除。
特点:
1.localStorage 默认支持的容量为一个站5M,当调用setItem超过上限时,会触发QuotaExceededError异常。当然有些浏览器支持修改容量上限,但为了兼容其他浏览器,最好按5M的容量来使用。
2.localStorage 是以key-value形式保存数据的,key和value只能是字符串格式。因此数字1保存后,会转换成字符串1。
3.localStorage 的写入与读取写法有以下几种:
localStorage.name = 'fdipzone';
name = localStorage.name; localStorage['name'] = 'fdipzone';
name = localStorage['name']; localStorage.setItem('name', 'fdipzone');
name = localStorage.getItem('name');
localStorage[key] = value写法主流浏览器都支持,官方并没有说明那一种写法是标准。但如果执行以下的代码就使localStorage失效。
localStorage.setItem = null;
localStorage.getItem = null;
localStorage.removeItem = null;
localStorage.clear = null;
因此,建议使用setItem(), getItem(), removeItem(), clear()来实现写入,读取,删除,清空。
4.如果要保存非字符串的内容,建议使用JSON来处理。写入数据时用JSON.stringify转成字符串,读取数据时用JSON.parse把字符串转为之前的格式。
例子1:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title> Local Storage and Session Storage </title>
</head> <body>
<p>姓名:<input type="text" name="name" id="name"></p>
<p>性别:<input type="radio" name="gender" id="gender1" value="1"> 男 <input type="radio" name="gender" id="gender2" value="2"> 女</p>
<p><input type="button" id="saveBtn" value="save"> <input type="button" id="getBtn" value="get"> <input type="button" id="removeBtn" value="remove name"> <input type="button" id="clearBtn" value="clear"> </p> <script type="text/javascript">
var oStorage = window.localStorage; function $(id){
return document.getElementById(id);
} // 保存数据
$('saveBtn').onclick = function(){
oStorage.setItem('name', $('name').value); if($('gender1').checked==true){
oStorage.setItem('gender', 1);
}else if($('gender2').checked==true){
oStorage.setItem('gender', 2);
}
} // 获取数据
$('getBtn').onclick = function(){
$('name').value = oStorage.getItem('name');
if(oStorage.getItem('gender')==1){
$('gender1').checked = true;
}else if(oStorage.getItem('gender')==2){
$('gender2').checked = true;
}
} // 删除数据name
$('removeBtn').onclick = function(){
oStorage.removeItem('name');
} // 清空数据
$('clearBtn').onclick = function(){
oStorage.clear();
} </script> </body>
</html>
例子2:使用 JSON.stringify 和 JSON.parse 封装数据
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title> Local Storage and Session Storage </title>
</head> <body>
<p>姓名:<input type="text" name="name" id="name"></p>
<p>性别:<input type="radio" name="gender" id="gender1" value="1"> 男 <input type="radio" name="gender" id="gender2" value="2"> 女</p>
<p><input type="button" id="saveBtn" value="save"> <input type="button" id="getBtn" value="get"> <input type="button" id="clearBtn" value="clear"> </p> <script type="text/javascript">
var oStorage = window.localStorage; function $(id){
return document.getElementById(id);
} // 保存数据
$('saveBtn').onclick = function(){
var name = $('name').value;
var gender;
if($('gender1').checked==true){
gender = 1;
}else if($('gender2').checked==true){
gender = 2;
} var data = {};
data['name'] = name;
data['gender'] = gender; oStorage.setItem('data', JSON.stringify(data));
} // 获取数据
$('getBtn').onclick = function(){
var data = JSON.parse(oStorage.getItem('data')); if(data){
var name = data['name'];
var gender = data['gender']; $('name').value = name; if(gender==1){
$('gender1').checked = true;
}else if(gender==2){
$('gender2').checked = true;
}
}
} // 清空数据
$('clearBtn').onclick = function(){
oStorage.clear();
} </script> </body>
</html>
监听localStorage的值,当发生变化时同步页面数据
当调用setItem(), removeItem(), clear() 时,可以监听这些事件,方便不同的页面之间更新数据。
// 监听数据变化,当数据发生变化时,同步数据显示
window.onstorage = function(event){
var status = {}
status.key = event.key;
status.oldValue = event.oldValue;
status.newValue = event.newValue;
status.url = event.url;
status.storage = event.storageArea; // 执行同步数据处理...
}
页面数据同步例子:点击查看
HTML5 localStorage and sessionStorage的更多相关文章
- html5  localStorage和sessionStorage
		该随便来自: http://www.cnblogs.com/yuzhongwusan/archive/2011/12/19/2293347.html html5中的Web Storage包括了两种存储 ... 
- HTML5 localStorage、sessionStorage 作用域
		一.localStorage localStorage有效期:永不失效,除非web应用主动删除. localStorage作用域:localStorage的作用域是限定在文档源级别的.文档源通过协议. ... 
- html5存储方式localstorage和sessionStorage
		html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage. 区别:localStorage无时间限制,除非主动删除数据,否则永不过期:sessio ... 
- HTML5 学习笔记(三)——本地存储(LocalStorage、SessionStorage、Web SQL Database)
		一.HTML4客户端存储 B/S架构的应用大量的信息存储在服务器端,客户端通过请求响应的方式从服务器获得数据,这样集中存储也会给服务器带来相应的压力,有些数据可以直接存储在客户端,传统的Web技术中会 ... 
- HTML5中的sessionStorage和localStorage
		html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage. sessionStorage用于本地存储一个会话(session)中的数据,这些数据只 ... 
- HTML5 本地存储 localStorage、sessionStorage 的遍历、存储大小限制处理
		HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localSt ... 
- HTML5本地存储之localStorage、sessionStorage
		1.概述 localStorage和sessionStorage统称为Web Storage,它使得网页可以在浏览器端储存数据. sessionStorage保存的数据用于浏览器的一次会话,当会话结束 ... 
- HTML5本地存储localStorage与sessionStorage
		在最近的项目中用到了html5的本地存储,下面总结一下. 1.html5几种存储形式 本地存储(localStorage && sessionStorage) 离线缓存(applica ... 
- 使用HTML5 Web存储的localStorage和sessionStorage方式
		localStorage(本地存储),可以长期存储数据,没有时间限制,一天,一年,两年甚至更长,数据都可以使用.sessionStorage(会话存储),只有在浏览器被关闭之前使用,创建另一个页面时同 ... 
随机推荐
- 快速编译system.img、userdata.img、boot.img的方法
			快速编译system.img和boot.img的方法 快速编译system.img,可以使用这个命令: #make systemimage 快速编译boot.img,可以使用以下命令: #make b ... 
- Oracle中如何使用REGEXP_SUBSTR函数
			REGEXP_SUBSTR函数格式如下: function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier) __srcst ... 
- 【leetcode❤python】Sum Of Two Number
			#-*- coding: UTF-8 -*- #既然不能使用加法和减法,那么就用位操作.下面以计算5+4的例子说明如何用位操作实现加法:#1. 用二进制表示两个加数,a=5=0101,b=4=0100 ... 
- 瞧,这就是UE4 C++
			1.虚幻中的类前缀你会见到U,A,F,以下就是很好的罗列其中的意义 U: UObject继承过来的,例如UTexture A: AActor继承过来的,例如AGameMode F: 其他的类和结构,例 ... 
- DevExpress Crack
			开发者论坛 DevExpressComponents-16.1.6.16270.exe http://www.dxper.net/thread-7440-1-1.html http://www.dxp ... 
- TeeChart中 Line的Clear方法
			需要注意的是,如果设置了Line.Smoothed=true; 那么调用Clear是无效的,虽然清除了曲线上的点. 但是界面上的曲线,并没有消失. 所以,在每一次Line.Clear();之前,必须确 ... 
- [C程序设计语言]第五部分
			声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ... 
- iOS - OC 异常处理
			1.@try 语句 @try { // Code that can potentially throw an exception 可能会抛出异常的代码块 statement . . . } @catc ... 
- java或者jsp中修复会话标识未更新漏洞
			AppScan会扫描“登录行为”前后的Cookie,其中会对其中的JSESSIONOID(或者别的cookie id依应用而定)进行记录.在登录行为发生后,如果cookie中这个值没有发生变化,则判定 ... 
- html5 drap & drop
			小知识点记录一下:onselectstart,onselect 1.onselectstart 该js方法是用来控制盒中内容是否被允许选中 <head> <style> #tm ... 
