`

html5中的Web Storage

阅读更多
html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。

sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。

而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

web storage和cookie的区别

Web Storage的概念和cookie相似,区别是它是为了更大容量存储设计的。Cookie的大小是受限的,并且每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还需要指定作用域,不可以跨域调用。

除此之外,Web Storage拥有setItem,getItem,removeItem,clear等方法,不像cookie需要前端开发者自己封装setCookie,getCookie。

但是Cookie也是不可以或缺的:Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生

html5 web storage的浏览器支持情况

浏览器的支持除了IE7及以下不支持外,其他标准浏览器都完全支持(ie及FF需在web服务器里运行),值得一提的是IE总是办好事,例如IE7、IE6中的UserData其实就是javascript本地存储的解决方案。通过简单的代码封装可以统一到所有的浏览器都支持web storage。

要判断浏览器是否支持localStorage可以使用下面的代码:

if(window.localStorage){
    alert("浏览支持localStorage")
}else{
   alert("浏览暂不支持localStorage")
}
//或者
if(typeof window.localStorage == 'undefined'){
	alert("浏览暂不支持localStorage")
}

localStorage和sessionStorage操作

localStorage和sessionStorage都具有相同的操作方法,例如setItem、getItem和removeItem等

localStorage和sessionStorage的方法

setItem存储value

用途:将value存储到key字段
用法:.setItem( key, value)
代码示例:

sessionStorage.setItem("key", "value");
	localStorage.setItem("site", "js8.in");

getItem获取value

用途:获取指定key本地存储的值
用法:.getItem(key)
代码示例:

var value = sessionStorage.getItem("key");
	var site = localStorage.getItem("site");

removeItem删除key

用途:删除指定key本地存储的值
用法:.removeItem(key)
代码示例:

sessionStorage.removeItem("key");
	localStorage.removeItem("site");

clear清除所有的key/value

用途:清除所有的key/value
用法:.clear()
代码示例:

sessionStorage.clear();
	localStorage.clear();
其他操作方法:点操作和[]

web Storage不但可以用自身的setItem,getItem等方便存取,也可以像普通对象一样用点(.)操作符,及[]的方式进行数据存储,像如下的代码:

var storage = window.localStorage;
storage.key1 = "hello";
storage["key2"] = "world";
console.log(storage.key1);
console.log(storage["key2"]);

localStorage和sessionStorage的key和length属性实现遍历

sessionStorage和localStorage提供的key()和length可以方便的实现存储的数据遍历,例如下面的代码:
var storage = window.localStorage;
for (var i=0, len = storage.length; i  <  len; i++){
    var key = storage.key(i);
    var value = storage.getItem(key);
    console.log(key + "=" + value);
}

storage事件

storage还提供了storage事件,当键值改变或者clear的时候,就可以触发storage事件,如下面的代码就添加了一个storage事件改变的监听:

if(window.addEventListener){
	window.addEventListener("storage",handle_storage,false);
}else if(window.attachEvent){
	window.attachEvent("onstorage",handle_storage);
}
function handle_storage(e){
	if(!e){e=window.event;}	
}

storage事件对象的具体属性如下表:

Property Type Description
key String The named key that was added, removed, or moddified
oldValue Any The previous value(now overwritten), or null if a new item was added
newValue Any The new value, or null if an item was added
url/uri String The page that called the method that triggered this change

分享到:
评论

相关推荐

    html5 web storage 例子

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

    HTML5应用开发技术-Web Storage.pptx

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

    Web Storage.rar

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

    HTML5移动Web开发

    1. **离线存储(Offline Storage)**:HTML5引入了离线存储机制,如Application Cache,允许网页在用户离线时也能访问部分数据,提高用户体验。 2. **表单控件增强**:HTML5提供了更多类型的输入控件,如date、time...

    HTML5 For Web Designers

    通过学习《HTML5 For Web Designers》,设计师不仅能够掌握HTML5的基本语法,还能了解到如何将这些新特性有效地应用于实际项目中,从而提升网站的设计质量和功能性。 总之,《HTML5 For Web Designers》是一本全面...

    【 YR-HTML5】Web Storage实现本地留言板

    【YR-HTML5】Web Storage实现本地留言板 在现代Web开发中,为了提供更好的用户体验,数据存储成为了不可或缺的一部分。传统的Cookie技术虽然可以实现数据存储,但存在存储量小、每次请求都会携带Cookie等限制。...

    html5指南-5.使用web storage存储键值对的数据

    HTML5 提供了 Web Storage 技术,它允许网页在用户的浏览器中存储键值对形式的数据。Web Storage 的优势在于它比传统的 Cookie 存储机制拥有更大的存储空间和更好的性能。 Web Storage 包括两种类型的存储机制:...

    HTML5本地存储之Web Storage详解

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

    HTML5 WebStorage(HTML5本地存储技术)

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

    HTML5 FOR WEB DESIGNERS

    对于Web应用程序,HTML5提供了离线存储(Offline Storage)和Web Workers特性。离线存储允许数据在用户离线时仍然可用,提高了应用的可用性和响应速度。Web Workers则可以在后台运行脚本,不阻塞用户的界面交互,...

    HTML5移动Web开发实战

    在HTML5移动Web开发中,"移动优先"是一种设计和开发方法,意味着首先考虑手机和平板电脑等小屏幕设备,然后逐步扩展到桌面和其他大屏幕设备。这种方法强调简洁、响应式设计,确保网站在各种设备上都能提供良好的用户...

    HTML5移动Web开发指南

    在HTML5中,开发者可以享受到许多新特性,比如离线存储、音频和视频内嵌、 canvas(画布)用于动态图形、svg(可缩放矢量图形)用于高质量图像、geolocation(地理位置)API以获取用户位置信息、web workers和web ...

    1963EXP_Code_HTML5移动Web开发实战实例源码_

    本压缩包中的源码实例涵盖了多个章节,提供了丰富的实践教学资源,帮助学习者深入理解和掌握HTML5在移动Web开发中的应用。 首先,我们来看一下每个子文件夹的可能内容: 1. `1963_01_code`:这可能是关于HTML5基础...

    h5webstorage:Angular 2的Web存储

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

    HTML5+CSS3移动Web开发实战(第2版)-电子教案.rar

    还有离线存储API(如AppCache和Service Worker)、Web Storage(localStorage和sessionStorage)以及Web Workers和WebAssembly等,都是HTML5为开发者提供的强大工具。 CSS3则是层叠样式表的最新标准,它的出现极大...

    html5简易Web留言本

    在HTML5中,Web Storage分为两种类型:localStorage和sessionStorage。localStorage提供了对数据的永久性存储,数据在浏览器关闭后仍能保留,适合用于存储长期需要保留的信息,如用户设置、购物车内容等。而...

Global site tag (gtag.js) - Google Analytics