`
lucifinilhades
  • 浏览: 87390 次
  • 性别: 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 例子

    HTML5 Web Storage 是一种在浏览器端存储数据的技术,它提供了比传统Cookie更高效、容量更大的存储空间,使得网页可以离线存储数据并提高应用程序的性能。Web Storage 分为两种主要类型:Session Storage 和 Local ...

    HTML5 WebStorage(HTML5本地存储技术)

    HTML5 WebStorage是现代网页应用中用于本地存储数据的关键特性,它解决了传统cookie技术的一些局限性,提供了更高效、安全的存储方式。WebStorage主要包含两种类型:localStorage和sessionStorage。 1. ...

    html5中的Web Storage

    HTML5中的Web Storage是网页应用用来在客户端存储数据的重要特性,它主要分为两种类型:sessionStorage和localStorage。这两种存储方式都是为了替代传统Cookie的局限性,提供更大的存储空间和更高效的本地数据管理。...

    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本地存储之Web Storage详解

    在HTML5中,Web Storage是一项重要的本地存储技术,它解决了传统cookie存在的诸多问题,如大小限制和不必要的网络传输。Web Storage分为两种类型:Session Storage和Local Storage,两者都是用来在用户的浏览器上...

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

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

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

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

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

     本书由旧金山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开发文档

    ### HTML5 WebStorage详解 #### 引言 随着互联网应用的日益丰富,用户对网站功能的需求也越发多样化,这促使了HTML5等新一代Web技术的诞生。其中,WebStorage是HTML5的重要特性之一,它提供了两种在客户端浏览器上...

    【ASP.NET编程知识】HTML服务器控件和WEB服务器控件的区别和联系介绍.docx

    * HTML5 WebStorage:HTML5 的本地存储技术,可以用于存储客户端的数据 * HTML Color Picker:一种 JavaScript 实现的拾色器效果,可以用于选择颜色 * Java 获取 html 中 Select,radio 多选的值方法:一种使用 Java ...

    HTML5高级程序设计.part5

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

    完整版《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.pptx

    HTML5应用开发技术中,Web Storage是一个重要的特性,它提供了比传统Cookie更高效、容量更大的本地数据存储解决方案。Web Storage分为两种类型:localStorage和sessionStorage,它们都是为了解决浏览器端的数据存储...

    Web Storage.rar

    于是,Web Storage作为HTML5的一项重要特性应运而生,为开发者提供了更高效、更灵活的数据存储解决方案。 Web Storage分为两种类型:Session Storage和Local Storage。它们的主要区别在于数据的生命周期和作用范围...

Global site tag (gtag.js) - Google Analytics