Web API之sessionStorage、localStorage、globalStorage

1. 引见
a) sessionStorage和localStorage都是window的属性,也是Storage对象的实例,即:window.sessionStorage instanceof Storage返回True,window.localStorage instanceof Storage 返回True,也因而二者享有Storage的属性和要领。
b) sessoinStorage存储的数据在页面会话结束时会被清空,页面会话在浏览器窗口封闭前延续存在,包括页面刷新和恢复。若新开标签或窗口将新建一个会话,再次猎取sessionStorage将只限于当前会话,与先前会话的无关。localStorage存储的数据不会
c) window.globalStorage自Gecko 13 (Firefox 13)起不再支撑。

2.属性
a) length(只读):返回Storage对象存储的数据条目数。

3. 要领
a) key(index):返回第index(从0最先)个键;若index>=length或许<0则返回null
b) getItem(key):返回key对应的键值或null
c) setItem(key, value):增加或许更新键值对
d) removeItem(key):删除该键对应的键值对
e) clear():清空一切键值对

4. 范围
a) Value只能是字符串,所以假如想存储对象的话,能够运用JSON.stringify(json)转为字符串,掏出的时刻运用JSON.parse(string)转回对象。
b) 差别浏览器的容量上限差别,运用该链接举行测试,http://dev-test.nemikor.com/web-storage/support-test/ 本人的谷歌版本为:Chrome 43.0.2357,测试效果以下:
《Web API之sessionStorage、localStorage、globalStorage》

5. 注重
a) 一个会话只对应一个sessionStorage(或许localStorage),即var x = window.sessionStorage和var y = window.sessionStorage时,x和y指向是同一个sessionStorage对象。别的,没法本身new一个Storage对象,即没法var s = new Storage(),不清楚
b) 能够增加键值对失利,缘由能够:用户制止运用Storage或许到达存储上限。
c) 存储在浏览器中的数据,如localStorage,以源举行支解。每一个源都具有本身零丁的存储空间,一个源中的Javascript剧本不能对属于别的源的数据举行读写操纵。

6. 学问补充
同源(same origin):假如两个页面具有雷同的协定(protocol),端口(假如指定),和主机,那末这两个页面就属于同一个源(origin)。
下表给出了相对http://store.company.com/dir/page.html同源检测的示例:
《Web API之sessionStorage、localStorage、globalStorage》

7. 兼容性
a) PC端
《Web API之sessionStorage、localStorage、globalStorage》
b) 挪动端
《Web API之sessionStorage、localStorage、globalStorage》

8. 参考资料
a) https://w3c.github.io/webstorage/#the-sessionstorage-attribute
b) https://developer.mozilla.org/zh-CN/docs/Web/API/Window/localStorage
c) https://developer.mozilla.org/zh-CN/docs/Web/API/Window/sessionStorage
d) https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy

    原文作者:zhoushx3
    原文地址: https://segmentfault.com/a/1190000003480930
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞