LocalStorage与SessionStorage

540e0c7f63b5ec58a5524c997b2c2dbb.md.jpg

什么是LocalStorage

LocalStorage译为“本地存储器”,是HTML5中新增的一个存储对象,跟Cookie一样也是用来本地存储来的,但是解决了Cookie存储空间不足的问题(cookie每条存储空间为4k),而localStorage浏览器一般支持5M,通常以键/值对形式的字符串进行存储。

什么是SessionStorage

SessionStorage译为“会话存储”,也是HTML5新增的一个存储对象, 用于本地临时存储同一窗口的数据,在关闭窗口之后将会删除这些数据,SessionStorage浏览器一般支持5M,通常以键/值对形式的字符串进行存储。

LocalStorage与SessionStorage的区别

LocalStorage生命周期是永久,除非主动清除LocalStorage信息,否则这些信息将一直存放在客户端。而SessionStorage生命周期是临时,仅在当前会话窗口有效,关闭页面或浏览器数据就会自动被清除。

49175aacc09beae2599bdb5623e4adab.jpg

LocalStorage与SessionStorage的特点

1.不同浏览器之间无法共享LocalStorage或SessionStorage中的数据。

2.LocalStorage和SessionStorage可以使用统一的API接口。

3.LocalStorage或SessionStorage通常以键/值对形式的字符串进行存储,所以在存储时需要对数据格式进行转换,使用JSON.stringify方法将对象转换成字符串,提取时用JSON.parse方法将字符串转换成对象。

4.LocalStorage或SessionStorage是HTML5的新属性,所以需要较新的浏览器才支持。

a0c39f061341644b55be8aaeef595bf3.jpg

localStorage和sessionStorage操作

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

localStorage和sessionStorage的方法

setItem存储value

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

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

getItem获取value

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

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

removeItem删除key

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

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

clear清除所有的key/value

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

1
2
sessionStorage.clear(); 	
localStorage.clear();

其他操作方法:点操作和[]

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

1
2
3
4
5
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可以方便的实现存储的数据遍历,例如下面的代码:

1
2
3
4
5
6
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);
}

setItem存储value

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

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

getItem获取value

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

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

removeItem删除key

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

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

clear清除所有的key/value

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

1
2
sessionStorage.clear(); 	
localStorage.clear();

其他操作方法:点操作和[]

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

1
2
3
4
5
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可以方便的实现存储的数据遍历,例如下面的代码:

1
2
3
4
5
6
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);
}

参考文章:HTMl5的sessionStorage和localStorage