web storage 离线存储

用来保存键值对数据,数据以属性的方式保存在storage实例对象上

可以用storage1.length来决定键值对的数量,但是无法决定数据的大小,storage1.remainingSpace可以获得剩余空间大小

只能以string的形式保存数据,非string数据会被转化为string再存储

1、sessionStorage

存储一次服务会话中的数据,浏览器关闭后清除数据,即使浏览器奔溃也可以恢复(Firefox和webview可以,ie不行)

sessionStorage.setItem(“name”, “Nicholas”);                         //推荐使用这种方式

sessionStorage.book = “Professional JavaScript”;

写入数据的时候ie是异步的,因此数据量大的时候会觉得比较快,因为它没有同步把数据写到硬盘里

for (var i=0, len = sessionStorage.length; i < len; i++){      //遍历内容

var key = sessionStorage.key(i);                                        //可以获得指定位置的key名称

var value = sessionStorage.getItem(key);

alert(key + “=” + value);

}

2、globalStorage  object   (Firefox2实现了)

目的是在不同会话之间保存数据以及一些接入限制,需要添加域名:

//save value

globalStorage[“wrox.com”].name = “Nicholas”;          //这样写域名即使子域名也是可以使用的,如果是www.wrox.com就限制子域名不可用

//get value

var name = globalStorage[“wrox.com”].name;

接入数据是会受协议,端口,域名等限制,例如一个数据是在https情况下保存的,那么在http情况下是无法获取该数据的

如果怕出错就使用:

globalStorage[location.host].name = “Nicholas”;                    //这样可以保持协议,端口,域名一致
var book = globalStorage[location.host].getItem(“book”);

globalStorage的数据会一直保存,除非被删除,或者用户清掉浏览器缓存

3、localStorage Object   (就是这个后来取代globalStorage  object,在修订后的HTML5文档)

这个不用去设置域名那些,因为已经封装好了,只有域名,协议,端口一致才能获取数据,子域名是不可以的。

对于只支持 globalStorage  的浏览器:

function getLocalStorage(){

if (typeof localStorage == “object”){

return localStorage;

} else if (typeof globalStorage == “object”){

return globalStorage[location.host];

} else {

throw new Error(“Local storage not available.”);

}

}

var storage = getLocalStorage();

当storage被操作的时候会在document触发storage事件:

document.addEventListener("storage", function(){

alert(“Storage changed for “ + event.domain);

}, false)

使用:

localStorage.setItem("username", "John");

alert( "username = " + localStorage.getItem("username"));

不同浏览器桌面或者手机对storage大小限制不同:超出可能导致数据覆盖或者闪退

测试地址:http://dev-test.nemikor.com/web-storage/support-test/

时间: 2024-11-05 20:41:16

web storage 离线存储的相关文章

H5新增的Web Storage本地存储

html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage. sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁. 因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储. 而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的. 一.web storage和cookie的区别Web Sto

Atitit.h5 web webview性能提升解决方案-----fileStrore缓存离线存储+http方案

1. 业务场景 android+webview h5 css背景图性能提升1 2. 根据标准,到目前为止,H5 一共有6种缓存机制,有些是之前已有,有些是 H5 才新加入的.1 2.1. 各种方案的比较,如下图2 3. Attilax的解决之道 file 缓存+http3 3.1. 图片的下载3 3.2. Jsbridge 4android5 3.3. http协议6 4. 参考8 1. 业务场景 android+webview h5 css背景图性能提升 图片的缓存大概儿需要500m的规模..

THML5本地存储 Web Storage

Web Storage 介绍 HTML5 定义了本地存储规范 Web Storage , 提供了两种存储类型 API  sessionStorage 和 localStorage,二者的差异主要是数据的保存时长及数据的共享方式. ? localStorage 一直存储在本地,数据存储是永久的,除非用户或程序对其进行删除操作: ? sessionStorage在会话期内有效,数据在浏览器关闭后自动删除: localStorage是基于域的,任何在该域内的页面都可以访问, sessionStorag

HTML5本地存储 Web Storage

Web Storage基本介绍 HTML5 定义了本地存储规范 Web Storage , 提供了两种存储类型 API  sessionStorage 和 localStorage,二者的差异主要是数据的保存时长及数据的共享方式. localStorage 一直存储在本地,数据存储是永久的,除非用户或程序对其进行删除操作: sessionStorage在会话期内有效,数据在浏览器关闭后自动删除: localStorage是基于域的,任何在该域内的页面都可以访问, sessionStorage在保

H5本地储存Web Storage

一.本地存储由来的背景 由于HTML4时代Cookie的大小.格式.存储数据格式等限制,网站应用如果想在浏览器端存储用户的部分信息,那么只能借助于Cookie.但是Cookie的这些限制,也就导致了Cookie只能存储一些ID之类的标识符等简单的数据. 下面是Cookie的限制: 大多数浏览器支持最大为 4096 字节的 Cookie.    浏览器还限制站点可以在用户计算机上存储的 Cookie 的数量.大多数浏览器只允许每个站点存储 20 个Cookie:如果试图存储更多 Cookie,则最

HTML5 Web 客户端五种离线存储方式汇总

最近折腾HTML5游戏需要离线存储功能,便把目前可用的几种HTML5存储方式研究了下,基于HT for Web写了个综合的实例,分别利用了Cookie.WebStorage.IndexedDB以及FileSystem四种本地离线存储方式,对燃气监控系统的表计位置.朝向.开关以及表值等信息做了CURD的存取操作. HTML5的存储还有一种Web SQL Database方式,虽然还有浏览器支持,是唯一的关系数据库结构的存储,但W3C以及停止对其的维护和发展,所以这里我们也不再对其进行介绍:Bewa

基于easyui的本地存储(web storage)

Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Storage官方建议为每个网站5MB. Web Storage又分为两种: sessionStorage localStorage 从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了:而localStorage则一直将数据保存在客户端本地: 不管

数据存储之Cookie和Web Storage。

Cookie Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).接下来就谈谈cookie的一些利弊,cookie虽然在持久保存客户端数据提供了方便,分担了服务器存储的负担,但还是有很多局限性的. 第一:每个特定的域名下最多生成20个cookie. 1.IE6或更低版本最多20个cookie 2.IE7和之后的版本最后可以有50个cookie. 3.Firefox最多50个cookie 4.chrome和

利用HTML5开发Android(4)---HTML5本地存储之Web Storage

Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Storage官方建议为每个网站5MB. Web Storage又分为两种: sessionStorage localStorage 从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了:而localStorage则一直将数据保存在客户端本地: 不管