HTML5之Web Storage本地存储
一.Web Storage
在HTML5中,除了Canvas元素之外,另一个新增的非常重要的功能是可以在客户端本地保存数据的Web Storage功能,我们知道,在HTML4中可以使用cookies在客户端保存用户名灯简单的用户信息,但是,通过长期的实际使用下来,发现使用cookies存储数据存在弊端:
- 大小:cookies的大小被限制在4KB。
- 带宽:cookies是随HTTP事务一起被发送的,因此会浪费发送cookies的带宽。
- 复杂性:要正确的操纵cookies是很困难。
在这种情况下HTML5提供了一种在客户端本地保存数据的功能,他就是Web Storage功能。
Web Storage功能,就是在Web上存储数据的功能,而这里的存储,是针对客户端本地而言的,Web Storage分为两种。
- sessionStorage
将数据保存在session对象中。所谓的session,是指用户在浏览某个网站时,从进入网站到浏览器关闭期间,session对象可以保存在这段时间内要求保存的任何数据。
- localStorage
将数据保存在客户端本地的硬件设备(硬盘等),即使浏览器关闭了,该数据仍然存在,下次打开浏览器访问网站仍然可以继续使用。
两者区别在于,sessionStorage为临时保存,而localStorage为永久保存。
二.使用sessionStorage或localStorage保存并读取数据
保存数据的方法很简单,只需调用setItem(key,value)方法即可,具体调用格式如下:
sessionStorage.setItem(key,value); localStorage.setItem(key,value);
- 参数key表示被保存内容的键名
- 参数value表示保存内容的键值,在使用setItem()方法保存数据时,对应格式为‘键名,键值’。成功设置键名后不允许修改,重复。
读取被保存的数据,只需调用getItem(key)方法即可
sessionStorage.getItem(key); localStorage.getItem(key);
示例如下:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <script type="text/javascript"> //sessionStorage 会话保存 /*function saveStorage(id){ var target = document.getElementById(id); var str = target.value; sessionStorage.setItem("message",str); } function loadStorage(id) { var target = document.getElementById(id); var msg = sessionStorage.getItem("message"); target.innerHTML = msg; }*/ //localStorage 会话保存 function saveStorage(id) { var target = document.getElementById(id); var str = target.value; localStorage.setItem("message",str); } function loadStorage(id) { var target = document.getElementById(id); var msg = localStorage.getItem("message"); target.innerHTML = msg; } </script> </head> <body> <h1>Web Storage示例</h1> <p id='msg'></p> <input type='text' id = 'input'/> <input type='button' value="保存数据" onClick="saveStorage('input');"/> <input type="button" value="读取数据" onClick="loadStorage('msg');"/> <br/> </body> </html>
三.使用本地数据库保存数据
上面介绍了Web Storage存储本地的方法,虽然这种存储方法比较简单,但Web Storage存储空间只有5MB。为此Web SQL数据库(Web DB),他内置SQLite数据库,对数据库操作可以通过executeSql()来实现,允许使用javaScript代码控制数据库的操作。
Web DB可以实现数据的本地存储,他提供了关系数据库的基本功能,可以存储页面中交互的,复制的数据。即可以保存数据,也可以缓存从服务器获取的数据。Web DB通过事务驱动实现对数据的管理,支持多浏览器并发操作,而不发生存储冲突。
常用API如下:
打开或创建数据库openDatabase(DBName,DBVersion,DBDescribe,DBSize,Callback());
- 参数DBName:表示数据库名称
- 参数DBVersion:表示版本号
- 参数DBSize:表示数据库的大小,单位为字节,如果是2MB,必须写成2*1024*1024;
- 参数Callback():表示创建或打开数据成功后执行一个函数;
相关推荐
表格的现在还是较为常用的一种标签,但不是用来布局,常见处理、显示表格式数据。在HTML网页中,要想创建表格,就需要使用表格相关的标签。<table> <tr> <td>单元格内的文字</td> ...