HTML提供了两种在客户端存储数据的新方法:(W3C)
- localStorage——没有时间限制的数据存储
- sessionStorage——针对一个session的数据存储
之前这些都是有cookie完成的,但是cookie不适合大量的数据存储,因为它们由每个对于服务器的请求来传递,使得cookie的速度很慢,效率也不高。
在HTML5中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据,它使在不影响网站性能的情况下存储大量数据成为可能。
localStorage.lastname = "Smith";
document.write(localStorage.lastname)
上面的代码第一次打开时会打印Smith,注释掉第一行之后,关闭浏览器,还是会打印Smith
sessionStorage.lastname = "yys";
document.write(sessionStorage.lastname);
上面的代码第一次打开会打印yys,注释掉第一行,关闭浏览器,就undefined
相关面试题:
请描述一下 cookies,sessionStorage 和 localStorage 的区别?
cookie是客户端为了标示用户身份存储在本地终端的数据,cookie始终在同源的http请求中携带,会在浏览器和服务器间来回传递
sessionStorage和localStorage将数据保存在本地,不会发给服务器
存储大小:
cookie数据大小不能超过4k
sessionStorage localStorage也有限制,但会达到5M或更大.
localStorage存储持久数据。浏览器关闭后数据也不会丢失;
sessionStorage数据在当前浏览器窗口关闭之后自动删除
cookie设置的cookie过期时间之前有效,即使窗口或浏览器关闭。