JavaScript之本地存储


提示:以下是本篇文章正文内容,下面案例可供参考

前言

本地存储

随着互联网的快速发展,基于网页的应用越来越普遍,同时也变得越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。
以前我们可能会把大量数据存储到数据库,而且还要从服务器里面频繁获取再使用,这很麻烦,更何况有些功能的数据没必要存到数据库内。

本地存储特性

  1. 数据存储在用户浏览器中。
  2. 设置、读取方便、甚至页面刷新不丢失数据。
  3. 容量较大,sessionStorage约5M、localStorage约20M。
    不要小看5M喔,大约能存储几百万个字呢。
  4. 只能存储字符串,可以将对象JSON.stringfy()编码后存储。

一、目标

  1. 能够写出sessionStorage数据的存储以及获取
  2. 能够写出localStorage数据的存储以及获取
  3. 能够说出它们两者的区别

二、主要学习内容

1. window.sessionStorage

1.1 sessionStorage的特性

  1. 生命周期为关闭浏览器窗口。
  2. 在同一个窗口(页面)下数据可以共享。
  3. 以键值对的形式存储使用。想存对象形式的数据可以用JSON.stringify(value)

1.2 sessionStorage的示例

1. 存储数据

sessionStorage.setItem(key,value)

1.1 代码示例:

<body>
  <input type="text">
  <button class="set">存储数据</button>
  
  <script>
  // 获取输入框和按钮元素
    var inp = document.querySelector('input')
    var set = document.querySelector('.set')
    给按钮注册绑定点击事件
    set.addEventListener('click', function() {
      
      
    // 获取输入框的值
      var val = inp.value
      // 存储到本地 setItem(key,value)形式
      sessionStorage.setItem('user',val)
    })
  </script>
</body>

1.2 示例图片:

存储数据示例图:

在这里插入图片描述试验的话打开控制台找到应用或Application → sessionStorage或会话存储空间
我的控制台是中文翻译了的。

还可以测试它的特性 - 生命周期为关闭浏览器窗口。 只要你不关闭页面窗口,它会一直存在,刷新页面也没关系。

刷新页面示例图:

在这里插入图片描述

2. 获取数据

sessionStorage.getItem(key)

2.1 代码示例:

<body>
  <input type="text">
  <button class="set">存储数据</button>
  <button class="get">获取数据</button>
  <script>
    var inp = document.querySelector('input')
    var set = document.querySelector('.set')
    // 给按钮注册绑定点击事件
    set.addEventListener('click', function() {
      
      
    // 获取输入框的值
      var val = inp.value
      // 存储到本地 setItem(key,value)形式
      sessionStorage.setItem('user',val)
    })
    // 获取 获取数据按钮的元素
    var get = document.querySelector('.get')
    // 注册绑定事件
    get.addEventListener('click', function() {
      
      
    // 点击后打印输出获得的本地数据
      console.log(sessionStorage.getItem('user'))
    })
  </script>

2.2 示例图片:

获取本地存储数据图:

在这里插入图片描述

3. 删除数据

sessionStorage.removeItem(key)

3.1 代码示例:

<body>
  <input type="text">
  <button class="remove">删除数据</button>
  <script>
    var inp = document.querySelector('input')
    // 给按钮注册绑定点击事件
    var remove = document.querySelector('.remove')
    remove.addEventListener('click', function() {
      
      
    // 删除本地数据
      sessionStorage.removeItem('user')
    })
  </script>
</body>

3.2 示例图片:

在这里插入图片描述

4. 清空所有数据

sessionStorage.clear()

4.1 代码示例:

<body>
  <input type="text">
  <button class="set">存储数据</button>
  <button class="clear">清空所有数据</button>

  <script>
    var inp = document.querySelector('input')
    var set = document.querySelector('.set')
    // 给按钮注册绑定点击事件
    set.addEventListener('click', function() {
      
      
    // 获取输入框的值
      var val = inp.value
      // 存储到本地 setItem(key,value)形式
      sessionStorage.setItem('user',val)
      sessionStorage.setItem('pwd',val)
    })
    // 清空所有数据
    var clear = document.querySelector('.clear')
    clear.addEventListener('click', function() {
      
      
    // 清空所有数据
      sessionStorage.clear()
    })
  </script>
</body>

4.2 示例图片:

在这里插入图片描述

1.3 sessionStorage 完整实例代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>08-本地存储sesstionStorage</title>
</head>
<body>
  <input type="text">
  <button class="set">存储数据</button>
  <button class="get">获取数据</button>
  <button class="remove">删除数据</button>
  <button class="clear">清空所有数据</button>

  <script>
    var inp = document.querySelector('input')
    var set = document.querySelector('.set')
    // 给按钮注册绑定点击事件
    set.addEventListener('click', function() {
      
      
    // 获取输入框的值
      var val = inp.value
      // 存储到本地 setItem(key,value)形式
      sessionStorage.setItem('user',val)
      sessionStorage.setItem('pwd',val)
    })
    // 获取数据
    var get = document.querySelector('.get')
    get.addEventListener('click', function() {
      
      
      console.log(sessionStorage.getItem('user'))
    })
    // 删除数据
    var remove = document.querySelector('.remove')
    remove.addEventListener('click', function() {
      
      
      sessionStorage.removeItem('user')
    })
    // 清空所有数据
    var clear = document.querySelector('.clear')
    clear.addEventListener('click', function() {
      
      
      sessionStorage.clear()
    })
  </script>
</body>
</html>

2. window.localStorage

2.1 localStorage的特性

  1. 生命周期永久生效,除非手动删除,否则关闭页面也会存在。
  2. 可以多窗口(页面)共享(同一浏览器可以共享)。
  3. 以键值对的形成存储使用。想存对象形式的数据可以用JSON.stringify(value)

2.2 sessionStorage的示例

1. 存储数据

localStorage.setItem(key,value)

1.1 代码示例:

<body>
  <input type="text">
  <button class="set">存储数据</button>
  <script> 
    var inp = document.querySelector('input')
    var set = document.querySelector('.set')
    // 给按钮注册绑定点击事件
    set.addEventListener('click', function() {
      
      
    // 获取输入框的值
      var val = inp.value
      // 存储到本地 setItem(key,value)形式
      localStorage.setItem('user',val)
      localStorage.setItem('pwd',val)
    })
  </script>
</body>

1.2 示例图片:

存储数据示例图:
在这里插入图片描述
在此我们可以再试验localStorage的特性 - 生命周期永久生效,除非手动删除,否则关闭页面也会存在。

关闭后重新打开此页面示例图:

在这里插入图片描述此图有点久,看完此图后确实localStorage的生命周期一直存在,除非我们手动删除。

2. 获取数据

localStorage.getItem(key)

2.1 代码示例:

<body>
  <input type="text">
  <button class="set">存储数据</button>
  <button class="get">获取数据</button>
  <script> 
    var inp = document.querySelector('input')
    var set = document.querySelector('.set')
    // 给按钮注册绑定点击事件
    set.addEventListener('click', function() {
      
      
    // 获取输入框的值
      var val = inp.value
      // 存储到本地 setItem(key,value)形式
      localStorage.setItem('user',val)
      localStorage.setItem('pwd',val)
    })
    // 获取数据
    var get = document.querySelector('.get')
    get.addEventListener('click', function() {
      
      
    // 获取数据并在控制台中打印输出
      console.log(localStorage.getItem('user'))
    })
   </script>
<body>

2.2 示例图片:

在这里插入图片描述
这里输出一个是因为我只写了一个输入user的console.log语句

3. 删除数据

localStorage.removeItem(key)

3.1 代码示例:

<body>
  <input type="text">
  <button class="remove">删除数据</button>
  <script> 
    var inp = document.querySelector('input')
    var remove = document.querySelector('.remove')
    remove.addEventListener('click', function() {
      
      
    // 删除数据
      localStorage.removeItem('user')
    })
  </script>
</body>

3.2 示例图片:

在这里插入图片描述

4. 清理所有数据

localStorage.clear()

4.1 代码示例:

<body>
  <input type="text">
  <button class="clear">清空所有数据</button>

  <script> 
    var inp = document.querySelector('input')

    var clear = document.querySelector('.clear')
    clear.addEventListener('click', function() {
      
      
    // 清空所有数据
      localStorage.clear()
    })
  </script>
</body>

4.2 示例图片:

在这里插入图片描述
试验可以 多窗口(页面)共享 (同一浏览器可以共享)。

在localStorage的页面中存储的数据:

在这里插入图片描述

我们换其他页面,并在其他页面中写入一段localStorage.getItem()输入语句,看看是否能获取到名为test的值
示例图:

在这里插入图片描述
在另一个html页面内写入:

console.log(localStorage.getItem(‘test’));
用来试验 多窗口(页面)共享(同一浏览器可以共享)。

2.3 localStorage 完整示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>09-本地存储之localStorage</title>
</head>
<body>
  <input type="text">
  <button class="set">存储数据</button>
  <button class="get">获取数据</button>
  <button class="remove">删除数据</button>
  <button class="clear">清空所有数据</button>

  <script> 
    var inp = document.querySelector('input')
    var set = document.querySelector('.set')
    // 给按钮注册绑定点击事件
    set.addEventListener('click', function() {
      
      
    // 获取输入框的值
      var val = inp.value
      // 存储到本地 setItem(key,value)形式
      localStorage.setItem('user',val)
      localStorage.setItem('pwd',val)
      localStorage.setItem('test',val)
    })

    var get = document.querySelector('.get')
    get.addEventListener('click', function() {
      
      
      console.log(localStorage.getItem('user'))
    })

    var remove = document.querySelector('.remove')
    remove.addEventListener('click', function() {
      
      
      localStorage.removeItem('user')
    })

    var clear = document.querySelector('.clear')
    clear.addEventListener('click', function() {
      
      
      localStorage.clear()
    })
    
  </script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_46278178/article/details/127035976