Web Storage简单使用
在HTML5中重新提供了一种在客户端本地保存数据的功能,它就是Web Storage功能。Web Storage功能,就是在Web上存储数据的功能。具体来说,又分为两种:
- sessionStorage:将数据保存在session对象中。所谓session,是指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。session对象可以用来保存在这段时间内所要求保存的任何数据。
- localStorage:将数据保存在客户端本地的硬件设备(通常指硬盘,但也可以是其他硬件设备)中,即使浏览器被关闭了,该数据仍然存在,下次打开浏览器访问网站时仍然可以继续使用。
两者的区别在于,sessionStorage为临时保存,而localStorage为永久保存。使用sessionStorage时,如果关闭了浏览器,数据就会丢失;而使用localStorage时,即使浏览器关闭了,下次打开浏览器时仍然可以读取被保存的数据。但是,数据保存是按不同的浏览器分别进行的,也就是说,如果打开别的浏览器,是读取不到在这个浏览器中保存的数据的。
基本使用方法包括:
- sessionStorage.setItem(key, value)、localStorage.setItem(key, value):在sessionStorage对象、localStorage对象中保存数据。
- sessionStorage.getItem(key)、localStorage.getItem(key):读取保存在sessionStorage对象、localStorage对象中的主键为key的值。
- sessionStorage.length、localStorage.length:所有保存在sessionStorage对象、localStorage对象中数据记录的条数。
- sessionStorage.key(index)、localStorage.key(index):将想要得到数据的索引号作为index参数传入,可以得到sessionStorage对象、localStorage对象中与这个索引号对应的主键数据。
使用示例
示例所用页面代码:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn" dir="ltr"> <head> <meta charset="UTF-8" /> <title>Web Storage</title> <script type="text/javascript" src="../js/jquery-1.6.4.js"></script> <script type="text/javascript" src="../js/webStorage.js"></script> </head> <body> <header> </header> <aside> </aside> <section> <h1>sessionStorage和localStorage</h1> <form name="sample01" id="sample01"> <label for="sTest">使用sessionStorage</label> <input type="text" id="sTest" name="sTest"/> <button type="button" id="saveBtn1">保存数据</button> <button type="button" id="loadBtn1">读取数据</button><br/> <label for="lTest">使用localStorage</label> <input type="text" id="lTest" name="lTest"/> <button type="button" id="saveBtn2">保存数据</button> <button type="button" id="loadBtn2">读取数据</button> </form> <table> <thead> <tr> <th>Key</th> <th>Value</th> </tr> </thead> <tbody></tbody> <tfoot> <tr> <th>Total</th> <th>0</th> </tr> </tfoot> </table> </section> <footer> <button type="button" id="clearBtn">清除</button> <div id="console"></div> </footer> </body> </html>
JavaScript脚本代码如下:
$(function() { var progressSave = function(storageObj, data) { var current = (new Date()).getTime(); storageObj.setItem(current, data); }; var insertRecord = function(key, value) { $("<tr>").append($("<td>").text(key)).append($("<td>").text(value)) .prependTo("tbody"); }; var progressLoad = function(storageObj) { var length = storageObj.length; var key = null; var date = new Date(); for ( var i = 0; i < length; i++) { key = storageObj.key(i); date.setTime(key); insertRecord(date.toLocaleString(), storageObj.getItem(key)); } $("tfoot th:last").text($("tbody>tr").size()); }; $("#saveBtn1").click(function(event) { progressSave(sessionStorage, $("#sTest").val()); }); $("#loadBtn1").click(function(event) { progressLoad(sessionStorage); }); $("#saveBtn2").click(function(event) { progressSave(localStorage, $("#lTest").val()); }); $("#loadBtn2").click(function(event) { progressLoad(localStorage); }); $("#clearBtn").click(function(event) { $("#console,tbody").empty(); $("tfoot th:last").text($("tbody>tr").size()); }); });
作为简易数据库使用
保存数据流程
- 从各输入字段中获取数据;
- 创建对象,将获取的数据作为对象的属性进行保存;
- 将对象转换成JSON格式的文本数据;
- 将文本数据保存在localStorage对象或sessionStorage对象中。
为了将数据保存为一个对象,使用“new Object()”语句创建一个对象,将各种数据保存在该对象的各个属性中,然后,为了将对象转换成JSON格式的文本数据,使用了JSON对象的stringify()方法,使用方法如下:
var str = JSON.stringify(data);
该方法接受一个参数data,该参数表示要转换成JSON格式的文本数据的对象,该方法的作用是将对象转换成JSON格式的文本数据,并将其返回。
读取数据流程
- 从localStorage对象或sessionStorage对象中,将检索用的关键词作为key获取对应数据;
- 将获取的数据转换成为JSON对象;
- 取得JSON对象的各个属性值,创建要输出的内容;
- 将要输出的内容在页面上呈现出来。
这个过程的关键是使用JSON对象的parse()方法,将从localStorage对象或sessionStorage对象中获取的数据转换成JSON对象,使用方法如下:
var data = JSON.parse(str);
该方法接受一个参数str,此参数表示从localStorage对象或sessionStorage对象中取得的数据,该方法的作用是将传入的数据转换成JSON对象,并且将该对象返回。
使用示例
var save = function() { var data = new Object(); data.name = $("#name").val(); data.email = $("#email").val(); data.tel = $("#tel").val(); var str = JSON.stringify(data); localStorage.setItem(data.name, str); }; var read = function() { var key = $("#key").val(); var str = localStorage.getItem(key); var data = JSON.parse(str); // 呈现数据 };
发表评论
-
使用选择器在页面中插入内容
2011-11-08 10:09 0使用选择器来插入文字 使用选择器来插入内容 在CSS2中, ... -
HTML5 绘制图形【4】
2011-11-08 08:39 1667绘制变形图形 坐标变换 绘制图形的时候,我们可能会想要旋转 ... -
CSS3 选择器【2】
2011-11-07 14:30 1046UI元素状态伪类选择器 UI元素状态伪类选择器的共同特征是: ... -
HTML5 绘制图形【3】
2011-11-05 19:28 1280绘制渐变图形 渐变是指在填充时从一种颜色慢慢过渡到另外一种颜 ... -
CSS3 选择器【1】
2011-11-06 12:19 1668选择器概述 选择器是CS ... -
HTML5 绘制图形【2】
2011-11-04 11:42 1367使用路径 绘制圆形 要 ... -
HTML5 绘制图形【1】
2011-11-03 12:48 1454canvas元素基础 canvas元素是HTML5中新增的一 ... -
CSS3 模块化结构
2011-11-03 19:12 1458CSS3中的模块 模块名称 功能描述 Basi ... -
HTML5 获取地理位置信息
2011-11-01 18:12 5400Geolocation API的基本知识 在HTML5中,为 ... -
HTML5 使用Web Worker处理线程
2011-11-01 09:16 4600基础知识 Web Worker是在HTML5中新增的,用来在 ... -
HTML5 Web Sockets通信
2011-10-29 20:15 4045基础介绍 Web Sockets是HTML5提供的在Web应 ... -
HTML5 跨文档消息传输
2011-10-29 19:11 1970基本介绍 HTML5提供了在网页文档之间互相接收与发送信息的 ... -
HTML5 离线应用程序【2】
2011-10-27 20:48 1811applicationCache对象 application ... -
HTML5 离线应用程序【1】
2011-10-27 14:02 1513离线Web应用程序介绍 在HTML5中新增了一个API,为离 ... -
HTML5 本地数据库
2011-10-24 21:03 2550本地数据库的基本概念 ... -
HTML5 多媒体播放【3】
2011-10-23 10:45 1208video元素和audio元素的方法 play()方法:使 ... -
HTML5 多媒体播放【2】
2011-10-22 21:14 1714音频和视频元素的属性 这两种元素所具有的属性大致相同,介绍如 ... -
HTML5 多媒体播放【1】
2011-10-21 18:58 892video与audio元素基础 在HTML5中,video元 ... -
HTML5 拖放API
2011-10-17 19:43 4931在HTML5中,已经支持在浏览器与其他应用程序之间的数据互相拖 ... -
HTML5 文件API
2011-10-16 18:49 4962在HTML5中,提供了一个关于文件操作的文件API,通过使用这 ...
相关推荐
html web storage 别人写的,共享下
从第2 章起,分别围绕构建令人神往的富web 应用,逐一讨论了html5 的canvas、geolocation 、communication、websocket、forms、web workers、storage 等api 的使用, 辅以直观明了的客户端和服务器端示例代码,让...
适用于Angular2HTML5 WebStorage API (服务) (服务) (装饰器) (功能) 用 下载库: npm install h5webstorage --save 2.将模块和提供程序导入顶级模块: import { WebStorageModule } from "h5web...
本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...
本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...
html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁 因此...
本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...
主要为大家详细介绍了HTML5本地存储之Web Storage的相关资料,Web Storage如何用JSON存储多个数据,感兴趣的小伙伴们可以参考一下
HTML5中很重要的技能之一就是:HTML5本地存储,今天就来说说这个技术,以及和其它存储方案的比较。
本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...
从第 2章起,分别围绕构建令人神往的富Web 应用,逐一讨论了HTML5的Canvas、Geolocation、Communication、WebSocket、Forms、WebWorkers、Storage等API的使用,辅以直观明了的客户端和服务器端示例代码,让开发人员...
本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...
本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...
本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...
本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...
本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...
Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Storage官方建议为每个网站5MB,感兴趣的朋友可以了解下
HTML5 and JavaScript Web Apps is about building web applications with HTML5 and W3C specifications that are widely supported across all devices and browsers. It is intendedfor programmers who are ...
HTML5应用开发技术
angular-html5-storage Angular.jsHTML5 Web存储(ngHTML5Storage)安装 bower install angular-html5-storage --save用法创建服务包装器(可选) app .factory('myStorageService', ['ngHTML5Storage', function(ng...