LocalStorage是HTML5提供的API,是用来操作当前页面里面的哈希。LocalStorage只能存字符串。
Session是服务器上的哈希,LocalStorage是浏览器上的哈希(其实是存在C盘里)。
localStorage是为了实现跨页面的持久化存储(html5出来之前的跨页面持久化存储只能通过cookie实现的,cookie也是存在C盘,但因为每次请求都会带上cookie,当cookie存储太多东西时,请求的负担就会变得很大,请求变得很慢),意思就是在跨页面的时候记录一些信息。在浏览器中,当我们刷新页面时,浏览器中所有变量都会销毁,这时我们可以将不想要被销毁的信息记录在localStorage里,因为localStorage里的信息不会被销毁。
常用的API:localStorage.setItem()、localStorage.getItem()、localStorage.clear()
举一个简单的例子,也是LocalStorage常见的应用场景。
我们需要在用户进入我们的网站主页时,提示用户一些信息,如下
<script>
alert('我们的网页改版了,增加了新功能!')
</script>
而且,我们希望只提醒用户一次。意思就是,不要用户每次刷新主页都弹出,这样用户体验不好。所以,我们就需要跨页面记录下‘已经提示过’这个信息。
<script>
let ready=localStorage.getItem('已经提示过')
if(!ready){
alert('我们的网页改版了,增加了新功能!')
localStorage.getItem('已经提示过',true)
}
</script>
总结
localStorage
1.localStorage跟HTTP无关
2.HTTP不会带上localStorage的值
3.只有相同域名的页面才能互相读取localStorage(没有同源那么严格)
4.每个域名localStorage容量是有限的,最大存储为5M左右(每个浏览器不一样)
5.常用场景:记录有没有提示过用户之类的信息(不重要的信息,不能记录密码)
6.localStorage永久有效,无法设置过期时间,除非用户清除缓存(ctrl+shift+delete,"cookie及其他网站数据")
SessionStorage(会话存储)
1、2、3、4同上,
区别是失效时间,localStorage永久有效,而SessionStorage会在用户关闭浏览器后(会话结束)失效。
常用API也一样。localStorage
网友评论