localStorage和sessionStorage API

两者都是浏览器端存储数据的接口。除了存储时长,两者完全一致。

不同点:

SessionStorage存储的数据只能用于一次会话(session),当会话结束(浏览器关闭),数据清空;

而LocalStorage长期存在。

1. 特点

1. 以键值对存储;且以文本形式(字符串形式)存储。

2. 读取时存在跨域问题;只能被同域下网页读取。

3. 不同浏览器中,存储量在2.5-10M之间。

2. 实例属性

只有一个length属性

查看存储的个数

localStorage.length
sessionStorage.length

3. 实例方法

1. setItem(key, value)

其中key, value都是字符串

localStorage.setItem('a', 'b');
sessionStorage.setItem('key', 'value');
// 也可以直接赋值
localStorage.b = 'c';
sessionStorage['c'] = 'd';

2. getItem(key)

获取key对应的值

window.sessionStorage.getItem('key')
window.localStorage.getItem('key')

3. removeItem(key)

删除key对应的值

sessionStorage.removeItem('key');
localStorage.removeItem('key');

4. clear()

清空所有存储的值

window.sessionStorage.clear()
window.localStorage.clear()

5. key(Index)

index是0-N的数值,表示第N个存储的内容;

可以配合length属性进行遍历。

4. storage事件

数据存储会触发storage事件。该事件不能在发生变化的页面监听,只能在同一域名下的不同窗口监听。

通过该事件,可以实现窗口之间的通信。

window.addEvenetListener('storage', function(event) {
    // event有多个属性
    /*
     1. event.key   存储的name,如'a'
     2. event.oldValue
     3. event.newValue
     4. event.storageArea 所有的值,如{b: "c", a: "b", length: 2}
     5. event.url  触发事件的页面的url
    */
})
posted @ 2019-11-13 23:25  Lyra李  阅读(590)  评论(0编辑  收藏  举报