在HTML 5中,除了Canvas元素之外,另一个新增的非常重要的功能是可以在客户端本地保存数据的Web Storage功能。我们知道,在HTML 4中可以使用cookie在客户端保存诸如用户名等简单的用户信息,但是,通过长期的使用,人们发现,用cookie储存永久数据存在以下几个问题。
大小:cookie的大小被限制在4KB。
带宽:cookie是随HTTP事务一起被发送的,因此会浪费一部分发送cookie时使用的带宽。
复杂性:要正确地操纵cookie是很困难的。
针对这些问题,在HTML 5中,重新提供了一种在客户端本地保存数据的功能,它就是Web Storage功能。
Web Storage功能,顾名思义,就是在Web上存储数据的功能,这里的存储是针对客户端本地而言的。具体来说,Web Storage又分为两种:
sessionStorage
将数据保存在session对象中。所谓session,是指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。session对象可以用来保存在这段时间内所要求保存的任何数据。
localStorage
将数据保存在客户端本地的硬件设备(通常指硬盘,也可以是其他硬件设备)中,即使浏览器被关闭了,该数据仍然存在,下次打开浏览器访问网站时仍然可以继续使用。
这两者的区别在于,sessionStorage为临时保存,而localStorage为永久保存。
到目前为止,Firefox 3.6以上、Chrome 6以上、Safari 5以上、Opera 10.50以上、IE 8以上版本的浏览器支持sessionStorage与localStorage的使用。
例一:web storage示例
<h1>web storage示例</h1>
<p id="msg"></p>
<input type="text" id="input" name="">
<input type="button" value="保存数据" onclick="saveStorage('input');">
<input type="button" value="读取数据" onclick="loadStorage('msg');">
//sessionStorage 示例
function saveStorage(id){
var target = document.getElementById(id);
var str = target.value;
sessionStorage.setItem("message",str);
//或sessionStorage.message=str;
}
function loadStorage(id){
var target = document.getElementById(id);
var msg = sessionStorage.getItem("message");
//或var msg=sessionStorage.message;
target.innerHTML = msg;
}
// localStorage示例
function saveStorage(id)
{
var target = document.getElementById(id);
var str = target.value;
localStorage.setItem("message",str);
// 或localStorage.message=str;
}
function loadStorage(id)
{
var target = document.getElementById(id);
var msg = localStorage.getItem("message");
//或var msg=localStorage.message;
target.innerHTML = msg;
}
例二:简单Web留言本
效果图如下:

<h1>简单Web留言本</h1>
<textarea id="memo" cols="60" rows="10"></textarea><br>
<input type="button" value="追加" onclick="saveStorage('memo');">
<input type="button" value="初始化" onclick="clearStorage('msg');">
<hr>
<p id="msg"></p>
function saveStorage(id){
var data = document.getElementById(id).value;
var time = new Date().getTime();
localStorage.setItem(time,data);
alert("数据已经保存");
loadStorage('msg');
}
function loadStorage(id){
var result = '<table border="1">';
for(var i = 0;i<localStorage.length; i++){
var key = localStorage.key(i);
var value = localStorage.getItem(key);
var date = new Date();
date.setTime(key);
var datastr = date.toGMTString();
result += '<tr><td>' +value+ '</td><td>' +datastr+'</td></tr>';
}
result += '</table>';
var target = document.getElementById(id);
target.innerHTML = result;
}
function clearStorage(){
localStorage.clear();
alert("全部数据被删除");
loadStorage('msg');
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
