`
lucifinilhades
  • 浏览: 84740 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

HTML5 Web Storage

阅读更多

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());
	});
}); 

作为简易数据库使用

保存数据流程

  1. 从各输入字段中获取数据;
  2. 创建对象,将获取的数据作为对象的属性进行保存;
  3. 将对象转换成JSON格式的文本数据;
  4. 将文本数据保存在localStorage对象或sessionStorage对象中。

为了将数据保存为一个对象,使用“new Object()”语句创建一个对象,将各种数据保存在该对象的各个属性中,然后,为了将对象转换成JSON格式的文本数据,使用了JSON对象的stringify()方法,使用方法如下:

var str = JSON.stringify(data);

该方法接受一个参数data,该参数表示要转换成JSON格式的文本数据的对象,该方法的作用是将对象转换成JSON格式的文本数据,并将其返回。

读取数据流程

  1. 从localStorage对象或sessionStorage对象中,将检索用的关键词作为key获取对应数据;
  2. 将获取的数据转换成为JSON对象;
  3. 取得JSON对象的各个属性值,创建要输出的内容;
  4. 将要输出的内容在页面上呈现出来。

这个过程的关键是使用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);
    // 呈现数据
};
分享到:
评论

相关推荐

    html5 web storage 例子

    html web storage 别人写的,共享下

    HTML5高级程序设计

    从第2 章起,分别围绕构建令人神往的富web 应用,逐一讨论了html5 的canvas、geolocation 、communication、websocket、forms、web workers、storage 等api 的使用, 辅以直观明了的客户端和服务器端示例代码,让...

    h5webstorage:Angular 2的Web存储

    适用于Angular2HTML5 WebStorage API (服务) (服务) (装饰器) (功能) 用 下载库: npm install h5webstorage --save 2.将模块和提供程序导入顶级模块: import { WebStorageModule } from "h5web...

    完整版《HTML5高级程序设计》5

     本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...

    完整版《HTML5高级程序设计》2

     本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...

    html5中的Web Storage

    html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁 因此...

    完整版《HTML5高级程序设计》4

     本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...

    HTML5本地存储之Web Storage详解

    主要为大家详细介绍了HTML5本地存储之Web Storage的相关资料,Web Storage如何用JSON存储多个数据,感兴趣的小伙伴们可以参考一下

    HTML5 WebStorage(HTML5本地存储技术)

    HTML5中很重要的技能之一就是:HTML5本地存储,今天就来说说这个技术,以及和其它存储方案的比较。

    HTML5高级程序设计.part5

     本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...

    HTML5程序设计(第2版).[荷]Peter Lubbers(带详细书签).pdf

    从第 2章起,分别围绕构建令人神往的富Web 应用,逐一讨论了HTML5的Canvas、Geolocation、Communication、WebSocket、Forms、WebWorkers、Storage等API的使用,辅以直观明了的客户端和服务器端示例代码,让开发人员...

    完整版《HTML5高级程序设计》3

     本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...

    HTML5高级程序设计.part4

     本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...

    HTML5高级程序设计.part1

     本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...

    HTML5高级程序设计.part2

     本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...

    HTML5高级程序设计.part3

     本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新...

    HTML5本地存储之Web Storage应用介绍

    Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Storage官方建议为每个网站5MB,感兴趣的朋友可以了解下

    HTML5 and JavaScript Web Apps【PDF新书】

    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应用开发技术-Web Storage.pptx

    HTML5应用开发技术

    angular-html5-storage:Angular.jsHTML5 Web存储

    angular-html5-storage Angular.jsHTML5 Web存储(ngHTML5Storage)安装 bower install angular-html5-storage --save用法创建服务包装器(可选) app .factory('myStorageService', ['ngHTML5Storage', function(ng...

Global site tag (gtag.js) - Google Analytics