`
edison87915
  • 浏览: 199390 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

HTML5 本地存储(转)

 
阅读更多

DOM Storage是在网络客户端存储键值对数据的一个标准。这使离线的网络应用的开发变得更加实际和简单。跟它看起来非常相似的另外一个就是cookies了,但是它在某些方面比cookies有很大的优势:

 

(1)  更大的存储空间。cookies的大小大约限制在4KB左右,而DOM Storage则在10MB左右,实用性大大提高。能够真正的持久化到本地。

(2)  cookies并没有提供永久持久化到本地的方法,它总是会过期,而DOM Storage则没有这个问题。效率更高。

(3)  cookies是需要发回服务器端的,而DOM Storage则不会。

(4)  接口更加标准,使用更加简单。相信cookie在javascript中的操作有多麻烦大家都是非常清楚的,而DOM Storage则需跟json一样操作即可。

 

当然它同样也有一些缺点,比如安全和隐私方面可能控制的不是那么好,它的存储是明文的并未经过加密,可以比较容易的获取存储的信息。

 

       无论如何,DOM Storage所具有的特性都是让人十分振奋的。但是(总会有但是),虽然目前的各个浏览器的新版本都支持这一特性,IE6和IE7仍然不支持,IE8已支持。不要沮丧,虽然IE6是个让人蛋疼的浏览器,但是考虑一下它的出生日期你会觉得它已经很神奇了。IE6中可以通过userData Behavior来实现类似的能力。当然限制多了一些,因特网的存储空间只有1MB左右,不过有总比没有强。

 

下面介绍一下DOM Storage的一些熟悉和方法。DOM Storage包括两种对象:sessionStorage和localStorage:

 

sessionStorage对象:在一个页面会话有效期内可以使用的存储对象。

 

localStorage对象:可以跨多个窗口,多个会话,也可以为域提供持久性存储。

每 个域和子域都具有自己单独的本地存储区域。 域可以访问子域的存储区域,而子域也可以访问父域的存储区域。 例如, localStorage['example.com'] 可由 example.com 及其任何子域访问。 子域

localStorage['www.example.com'] 可由 example.com 访问,但不能由其他子域访问,如 mail.example.com。

 

Storage对象的属性和方法:

clear 方法:从 DOM 存储区域中移除所有键/值对。

constructor 属性:返回对对象的构造函数的引用。

getItem 方法:检索与 DOM 存储键关联的当前值。

key 方法:检索集合中指定索引处的键。

length 属性:检索键/值列表的长度。

remainingSpace 属性:检索可用于存储对象的剩余内存空间

removeItem 方法:从 DOM 存储集合中删除键/值对。

setItem 方法:设置键/值对。

 

IE6和IE7下是通过userData Behavior是实现的,它需要用到behavior这个IE下私有的属性。它有一下属性和方法:

 

expires 属性

XMLDocument 属性

getAttribute 方法

load 方法

removeAttribute 方法

save 方法

setAttribute 方法

 

手册介绍的差不多了,光是罗列这些手册没啥用处,为了方便使用我这里封装了一个对象用于localStorage的存取,让这个对象在保持兼容的同时使用起来也能够更加方便。

废话不多说,上代码(?????????????)

 

(function(w){
	var isSupportLocalStorage =!!window.localStroage, isSupportBehavior = false;
	if(!isSupportLocalStorage){
		var dataObj = document.createElement('input'); 
		dataObj.type='hidden'; 
		document.body.appendChild(dataObj); 
		isSupportBehavior =!! dataObj.addBehavior; 
		isSupportBehavior && dataObj.addBehavior('#default#userData'); 
	}
	var configs ={ storeName:'editorContent'};
	w.storage={ 
		retrieve:function(name){
			if(!isSupportLocalStorage && isSupportBehavior){ 
				dataObj.load(configs.storeName);
				return dataObj.getAttribute(name);
			}else{
				return w.localStorage.getItem(name);
			}
			return null;
		}, 
		save:function(name, value){
			if(!isSupportLocalStorage && isSupportBehavior){
				dataObj.setAttribute(name, value); 
				dataObj.save(configs.storeName);
				return true;
			}else{ 
				w.localStorage.setItem(name, value);
				return true;
			}
			return false;
		}
	};
})(window);

 

 

使用很方便,直接调用即可storage.save(name, value)  /  storage.retrieve(name)。

  • 大小: 923.4 KB
分享到:
评论

相关推荐

    html5-本地存储

    ### HTML5本地存储详解 #### 一、HTML5本地存储概述 HTML5本地存储(LocalStorage)作为HTML5标准的一部分,提供了强大的客户端数据存储能力。它允许网页应用在用户的浏览器上持久化存储数据,无需每次都从服务器...

    HTML5的本地存储

    ### HTML5的本地存储 #### 一、概述 HTML5 的本地存储技术是现代Web开发中一项非常重要的特性,它允许网页应用在用户的浏览器中存储数据。与传统的Cookie存储方式相比,HTML5本地存储提供了更丰富的功能和更大的...

    HTML本地存储实例

    HTML本地存储,特别是HTML5中的localStorage和Web数据库(Database)技术,是现代Web应用中用于在客户端存储数据的重要工具。这些技术使得开发者可以将部分数据存储在用户的浏览器中,从而提高应用程序的性能,减少...

    HTML5本地存储不完全指南

    HTML5本地存储不完全指南 HTML5 本地存储

    HTML5 本地存储实现购物车功能

    今天突发奇想,如果能用HTML5本地存储实现,就会大大增高程序效率。当然,HTML5 本地存储涉及到各个浏览器的兼容性,涉及存储数据的大小(NKB)等问题。在这儿需要说明的是:如果你做一个不大不小的微商城项目,那么你...

    html5本地存储-公告模块

    HTML5本地存储是现代网页应用中一个至关重要的技术,它允许开发者在用户的浏览器上存储数据,无需服务器的参与。这极大地改善了用户体验,尤其是对于离线应用或者需要频繁交互的数据缓存场景。在这个"html5本地存储-...

    HTML5本地存储——Web SQL Database

    HTML5是现代网页开发的重要标准,它引入了许多新特性,其中本地存储技术是提升Web应用离线可用性和性能的关键部分。Web SQL Database是HTML5早期的本地存储解决方案之一,允许Web应用程序在用户的浏览器中存储大量...

    HTML5 本地数据库操作

    1. Web Storage:HTML5的本地存储主要由两部分组成,即`localStorage`和`sessionStorage`。`localStorage`用于持久化存储,数据在浏览器关闭后依然保留;而`sessionStorage`仅在当前会话中有效,关闭标签页或浏览器...

    纯html5绘制的本地时钟特效.zip

    【纯HTML5绘制的本地时钟特效】是一个利用HTML5技术实现的创新视觉效果,它展示了HTML5的强大功能和灵活性。HTML5作为一种先进的标记语言,不仅增强了网页的结构化能力,还提供了丰富的媒体支持和离线存储等功能。在...

    html5本地数据存储两方案之框架

    - "brianleroux-lawnchair-0.6.3-77-ged3ea57.zip" 和 "zefhemel-persistencejs-v0.2.4-101-gca38084.zip" 是两个流行的JavaScript库,它们抽象了HTML5本地存储接口,使得开发者可以更方便地进行数据操作。...

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

    HTML5的本地存储机制扩展了Web应用程序的能力,使得开发者可以在用户浏览器中持久化地存储数据。在HTML5之前,Web应用程序依赖于Cookie来存储少量信息,但Cookie由于大小限制和性能原因并不适合大量数据的存储。...

    使用jquery-mobile+html5实现android本地通讯录

    在Android上实现本地通讯录访问,需要使用HTML5的Web SQL Database或IndexedDB来存储通讯录数据,同时利用PhoneGap或Cordova这样的框架将JavaScript API与Android原生API桥接。PhoneGap提供了一个名为`contacts`的...

    HTML5本地应用开发方案

    HTML5不仅改进了Web页面的表现性能,还增加了本地数据库、本地存储和离线应用等功能。它的新特性使得Web应用能够更好地离线工作,并提供更丰富的媒体支持和图形处理能力。开发者可以利用HTML5开发出跨平台的应用,...

    HTML5规范的本地存储

    HTML5规范的本地存储

    ASP读取本地Excel、Word文件转成html入库

    5. **转换为HTML**:读取的数据可以通过各种方式转换为HTML格式。例如,对于Excel数据,可以逐行逐列创建HTML表格;对于Word文档,可以将段落和格式化文本映射为HTML标签。 6. **数据库连接**:在`conn.asp`文件中...

    5个HTML5的常用本地存储方式详解与介绍

    HTML5提供了一些全新的本地存储解决方案,它们是Web开发中非常重要的技术,可以用来存储用户的私有数据,包括数据和资源,以提升用户体验。在HTML5标准之前,主要的存储方式是通过cookies来实现的,但这种方法有一些...

Global site tag (gtag.js) - Google Analytics