过去的HTML 已经难以满足现代 Web 应用的需要,事实上,这个协议已经有超过 10 年没有更新了。HTML5 的出现旨在解决 Web 中的交互,媒体,本地操作等问题,一些浏览器已经尝试支持 HTM
顺晟科技
2022-09-15 20:10:57
204
原文地址: Using HTML5 Web Storage
原文日期: 2010年06月28日
翻译日期: 2013年08月12日
当下Web开发领域最火爆的词语当属 HTML5。HTML5标准的新特性将得到那些不想通过东拼西凑一些功能来使得网站更快,更好,更灵活的WEB开发者热烈的欢迎。其中一个耀眼的特性是Web Storage(Web 存储)。Web存储提供一个客户端方法来保存会话信息,让我们来看看如何使用Web Storage:
Web Storage的特点:
- 值可以是任意的数据类型,只要是key-value形式可以保存的。
- 数据将永不过期,除非用户明确调用了delete方法,或者浏览器限制了空间大小,或者其他原因(比如用户清空历史数据)
- 数据项在整个domain(域名)内都可见。
HTML5 Web 存储方法列表
setItem(key,value): 添加一个键值对,存储到sessionStorage(会话存储)对象
getItem(key): 根据key获取值
clear(): 清空sessionStorage(会话存储)的所有键/值对
removeItem(key): 从sessionStorage 移除某个项(键值对)
key(n): 获取第n个key。
设置key/value
有两种方式可以把值存储到sessionStorage:
// 第一种方式,标准方法 sessionStorage.setItem(\'email\',\'renfufei@qq.com\'); // 第二种方式,直接当成普通对象属性赋值。 sessionStorage.blog = \'http://blog.csdn.net/renfufei\';
获取值
同样有两种方式:// 1. 标准方法 var email = sessionStorage.getItem(\'email\'); // 2. 直接取属性值 var blog = sessionStorage.blog;
// 移除之后,再获取值,将会得到 undefined // 根据key,移除键值对 sessionStorage.removeItem(\'email\');
// 全部清除 sessionStorage.clear();
<a href="javascript:;" onClick="if(sessionStorage && sessionStorage.getItem(\'name\')) { alert(\'欢迎下次再来, \' + sessionStorage.getItem(\'name\')); }">退出</a>
<!DOCTYPE html> <html> <head> <title>HTML5 Web Storage 示例</title> <meta name="Generator" content="EditPlus"> <meta name="Author" content="renfufei@qq.com"> <meta name="Keywords" content="HTML5 sessionStorage"> <meta name="Description" content="from:http://davidwalsh.name/html5-storage"> <!-- HTML5 建议,script 标签,不加type属性域 --> <script> // 封装为自己的方法,有一个好处,就是如果想支持更古老的浏览器, // 那么,可以判断是否支持HTML5,也采用自己的实现,比如cookie // 根据key获取值,可以指定默认值 function get(key,defValue){ return sessionStorage.getItem(key) || defValue; //return sessionStorage[key] || defValue; }; // 设置key/value function set(key,value){ return sessionStorage.setItem(key,value); //return sessionStorage[key] = value; }; // 设置key/value function clearStorage(){ return sessionStorage.clear(); }; // 退出 function signout(){ var name = get("name",\'游客\'); if(name) { alert(\'再见, \' +name ); } }; // 设置值 function setName(){ var nameInput = document.getElementById("name"); if(nameInput){ var name = nameInput.value; if(!name){ alert("姓名不能为空"); } else { set(\'name\',name); } } }; // 绑定事件 window.addEventListener("DOMContentLoaded", function() { var btnsetname = document.getElementById("btnsetname"); var btnclear = document.getElementById("btnclear"); var btnsignout = document.getElementById("btnsignout"); btnsetname.addEventListener("click",function(){ // setName(); }); btnclear.addEventListener("click",function(){ // clearStorage(); }); btnsignout.addEventListener("click",function(){ // signout(); }); }, false); </script> </head> <body> <div> 姓名: <input id="name" value="" /> <button id="btnsetname">确定</button> </div> <div> <button id="btnclear">清除数据</button> </div> <div> <button id="btnsignout">退出</button> </div> </body> </html>
18
2022-10
07
2022-10
30
2022-09
15
2022-09
15
2022-09
15
2022-09