什么是本地存储呢?我们平常保存东西或者需要经过数据库,服务器,将数据存到数据库中,但有些时候我们要保存的数据没有必要存到数据库中,比如我们在网页输入的内容,我们想要刷新页面也不会清楚数据,这时本地存储就有了其价值
本地存储主要有以下几种特性:
- 数据存在浏览器中
- 读取方便
- 页面刷新不会丢失数据
- 只能存储字符串
这篇文章我们主要研究本地存储的两种方式:
- window.sessionStorage
- window.localStorage
( window 可省略 )
一:window.sessionStorage
在开始讲解此方式前,我们先说明一个名词 ------- 生命周期,所谓生命周期,就是从创建到销毁经历的过程,window.sessionStorage 的生命周期就是关闭浏览器窗口就可将其销毁。
其特点如下:生命周期为关闭浏览器窗口,仅可同一页面可共享数据,以键值对的形式存储
数据的特性不过是增删查改:
-
sessionStorage.setItem (key, value):存储数据
-
sessionStorage.getItem (key):获取数据
-
sessionStorage.removeItem (key):删除数据
- sessionStorage.clear ():删除所有数据
sessionStorage.setItem (key, value):
用于存储数据,以键值对的方式存入浏览器
<body> <input type="text"> <button>存储数据</button> <script> var text=document.querySelector('input'); var btn=document.querySelector('button'); btn.addEventListener('click',function(){ window.sessionStorage.setItem('id',text.value) }) </script> </body>
sessionStorage.getItem (key):
用于获取数据,此处将存储的值给了文本框,让其重新显示
<body> <input type="text"> <button class="set">存储数据</button> <button class="get">获取数据</button> <script> var text=document.querySelector('input'); var btnset=document.querySelector('.set'); var btnget=document.querySelector('.get'); btnset.addEventListener('click',function(){ //存储数据 window.sessionStorage.setItem('id',text.value); }) btnget.addEventListener('click',function(){ //获取数据 text.value= window.sessionStorage.getItem('id'); }) </script> </body>
sessionStorage.removeItem (key):
用于删除存储的数据,一次只能删一个指定键的数据
<body> <input type="text"> <button class="set">存储数据</button> <button class="get">获取数据</button> <button class="remove">删除数据</button> <script> var text=document.querySelector('input'); var btnset=document.querySelector('.set'); var btnget=document.querySelector('.get'); var btnremove=document.querySelector('.remove'); btnset.addEventListener('click',function(){ //存储数据 window.sessionStorage.setItem('id',text.value); }) btnget.addEventListener('click',function(){ //获取数据 text.value= window.sessionStorage.getItem('id'); }) btnremove.addEventListener('click',function(){ //获取数据 window.sessionStorage.removeItem('id'); }) </script> </body>
存储后数据存在了浏览器中:
删除后数据完完全全被删除,无法再次获取:
sessionStorage.clear ():
清除所有数据
<body> <input type="text"> <button class="set">存储数据</button> <button class="get">获取数据</button> <button class="remove">删除数据</button> <button class="clear">删除所有数据</button> <script> var text=document.querySelector('input'); var btnset=document.querySelector('.set'); var btnget=document.querySelector('.get'); var btnremove=document.querySelector('.remove'); var btnclear=document.querySelector('.clear'); btnset.addEventListener('click',function(){ //存储数据 window.sessionStorage.setItem('id',text.value); window.sessionStorage.setItem('pwd',text.value); }) btnget.addEventListener('click',function(){ //获取数据 text.value= window.sessionStorage.getItem('id'); }) btnremove.addEventListener('click',function(){ //获取数据 window.sessionStorage.removeItem('id'); }) btnclear.addEventListener('click',function(){ //获取数据 window.sessionStorage.clear(); }) </script> </body>
我们先存入两个数据:
删除所有数据后数据消失:
二:window.localStorage
其特点如下:生命周期为永久生效的,关闭浏览器也会存在,除非手动删除,可以多个页面共享数据(同一个浏览器下),以键值对的形式存储
数据的特性增删查改和 sessionStorage 一样:
-
localStorage.setItem (key, value):存储数据
-
localStorage.getItem (key):获取数据
-
localStorage.removeItem (key):删除数据
- localStorage.clear ():删除所有数据
localStorage.setItem (key, value):
存储数据,由于其生命周期为永久,所以即使关闭浏览器,再打开也会存在此数据
<body> <input type="text"> <button>存储数据</button> <script> var text=document.querySelector('input'); var btn=document.querySelector('button'); btn.addEventListener('click',function(){ window.localStorage.setItem('id',text.value) }) </script> </body>
localStorage.getItem (key):
用于获取数据 ,用法与上均相同
<body> <input type="text"> <button class="set">存储数据</button> <button class="get">获取数据</button> <script> var text=document.querySelector('input'); var btnset=document.querySelector('.set'); var btnget=document.querySelector('.get'); btnset.addEventListener('click',function(){ //存储数据 window.localStorage.setItem('id',text.value); }) btnget.addEventListener('click',function(){ //获取数据 text.value= window.localStorage.getItem('id'); }) </script> </body>
localStorage.removeItem (key):
用于删除存储的数据,一次只能删一个指定键的数据
<body> <input type="text"> <button class="set">存储数据</button> <button class="get">获取数据</button> <button class="remove">删除数据</button> <script> var text=document.querySelector('input'); var btnset=document.querySelector('.set'); var btnget=document.querySelector('.get'); var btnremove=document.querySelector('.remove'); btnset.addEventListener('click',function(){ //存储数据 window.localStorage.setItem('id',text.value); }) btnget.addEventListener('click',function(){ //获取数据 text.value= window.localStorage.getItem('id'); }) btnremove.addEventListener('click',function(){ //获取数据 window.localStorage.removeItem('id'); }) </script> </body>
存储后数据存在了浏览器中:
删除后数据完完全全被删除,无法再次获取:
localStorage.clear ():
清除所有数据
<body> <input type="text"> <button class="set">存储数据</button> <button class="get">获取数据</button> <button class="remove">删除数据</button> <button class="clear">删除所有数据</button> <script> var text=document.querySelector('input'); var btnset=document.querySelector('.set'); var btnget=document.querySelector('.get'); var btnremove=document.querySelector('.remove'); var btnclear=document.querySelector('.clear'); btnset.addEventListener('click',function(){ //存储数据 window.localStorage.setItem('id',text.value); window.localStorage.setItem('pwd',text.value); }) btnget.addEventListener('click',function(){ //获取数据 text.value= window.localStorage.getItem('id'); }) btnremove.addEventListener('click',function(){ //获取数据 window.localStorage.removeItem('id'); }) btnclear.addEventListener('click',function(){ //获取数据 window.localStorage.clear(); }) </script> </body>
我们先存入两个数据:
删除所有数据后数据消失: