javascript中sessionStorage的存储机制的使用小结

 更新时间:2025年05月08日 10:41:22   作者:胡歌1  
本文主要介绍了javascript中sessionStorage的存储机制的使用,包括其作用域、生命周期、存储容量、数据类型以及API的使用,具有一定的参考价值,感兴趣的可以了解一下

1. sessionStorage 的特点

  • 作用域

    • sessionStorage 的作用域限定在当前页面会话中。

    • 不同标签页或窗口之间的 sessionStorage 是隔离的,即使它们打开的是同一个页面。

  • 生命周期

    • 数据在页面会话期间有效。

    • 当页面会话结束(关闭标签页或窗口)时,数据会被清除。

  • 存储容量

    • 通常每个源的 sessionStorage 容量限制为 5MB(不同浏览器可能略有不同)。

  • 数据类型

    • 只能存储字符串类型的数据。如果需要存储对象或其他数据类型,需要先将其转换为字符串(如使用 JSON.stringify)。

2. sessionStorage 的存储机制

浏览器通过以下方式存储和管理 sessionStorage 数据:

2.1 基于源的隔离

  • sessionStorage 是基于 源(Origin) 隔离的。

  •  由协议(http/https)、域名和端口组成。例如:

    • https://example.com 和 http://example.com 是不同的源。

    • https://example.com 和 https://www.example.com 也是不同的源。

  • 不同源之间的 sessionStorage 数据是隔离的,无法互相访问。

2.2 页面会话的绑定

  • sessionStorage 与当前页面会话绑定。

  • 当用户打开一个新标签页或窗口时,即使访问的是同一个 URL,也会创建一个新的 sessionStorage 实例。

  • 刷新页面不会清除 sessionStorage 数据。

2.3 数据存储位置

  • sessionStorage 的数据存储在浏览器的内存中。

  • 数据不会持久化到磁盘,因此当页面会话结束时,数据会被清除。

3. sessionStorage 的 API

sessionStorage 提供了以下方法用于操作数据:

3.1 存储数据

sessionStorage.setItem('key', 'value');
  • 将数据存储到 sessionStorage 中。

  • 如果键已存在,则会覆盖原有的值。

3.2 获取数据

const value = sessionStorage.getItem('key');
  • 从 sessionStorage 中获取指定键对应的值。

  • 如果键不存在,则返回 null

3.3 删除数据

sessionStorage.removeItem('key');
  • 从 sessionStorage 中删除指定键及其对应的值。

3.4 清空数据

sessionStorage.clear();
  • 清空 sessionStorage 中的所有数据。

3.5 获取键名

const key = sessionStorage.key(index);
  • 获取指定索引位置的键名。

3.6 获取长度

const length = sessionStorage.length;
  • 获取 sessionStorage 中存储的键值对数量。

4. sessionStorage 的使用示例

4.1 存储和获取数据

// 存储数据
sessionStorage.setItem('username', 'Alice');
sessionStorage.setItem('theme', 'dark');

// 获取数据
const username = sessionStorage.getItem('username');
console.log(username); // 输出: Alice

// 获取不存在的键
const nonExistent = sessionStorage.getItem('nonExistent');
console.log(nonExistent); // 输出: null

4.2 删除数据

// 删除指定键
sessionStorage.removeItem('theme');

// 检查是否删除成功
const theme = sessionStorage.getItem('theme');
console.log(theme); // 输出: null

4.3 清空数据

// 清空所有数据
sessionStorage.clear();

// 检查是否清空成功
console.log(sessionStorage.length); // 输出: 0

4.4 遍历数据

// 存储数据
sessionStorage.setItem('key1', 'value1');
sessionStorage.setItem('key2', 'value2');

// 遍历所有键值对
for (let i = 0; i < sessionStorage.length; i++) {
    const key = sessionStorage.key(i);
    const value = sessionStorage.getItem(key);
    console.log(`${key}: ${value}`);
}
// 输出:
// key1: value1
// key2: value2

5. sessionStorage 的注意事项

  • 数据丢失

    • 当页面会话结束时(关闭标签页或窗口),sessionStorage 中的数据会被清除。

    • 刷新页面不会清除数据。

  • 数据类型限制

    • sessionStorage 只能存储字符串。如果需要存储对象或其他数据类型,需要先将其转换为字符串(如使用 JSON.stringify)。

  • 容量限制

    • 每个源的 sessionStorage 容量通常限制为 5MB。如果超出限制,浏览器可能会抛出错误。

  • 安全性

    • sessionStorage 的数据仅在客户端存储,不会自动发送到服务器。

    • 不要将敏感信息(如密码、令牌)存储在 sessionStorage 中,除非经过加密处理。

6. sessionStorage 与 localStorage 的区别

特性sessionStoragelocalStorage
生命周期页面会话结束时清除永久存储,除非手动清除
作用域当前页面会话同一源下的所有页面
数据共享不同标签页或窗口之间隔离同一源下的所有页面共享
容量限制通常 5MB通常 5MB
适用场景临时存储页面会话期间的数据长期存储用户偏好设置或其他持久化数据

总结

  • sessionStorage 是一种基于页面会话的客户端存储机制,数据在页面会话期间有效。

  • 它的作用域限定在当前页面会话中,不同标签页或窗口之间的数据是隔离的。

  • 使用 sessionStorage 可以方便地存储临时数据,但需要注意其生命周期和容量限制。

  • 与 localStorage 相比,sessionStorage 更适合存储临时数据,而 localStorage 更适合存储持久化数据。

到此这篇关于javascript中sessionStorage的存储机制的使用小结的文章就介绍到这了,更多相关javascript sessionStorage存储内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 微信小程序实现转盘抽奖

    微信小程序实现转盘抽奖

    这篇文章主要为大家详细介绍了微信小程序实现转盘抽奖,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • JavaScrip实现一个有时间限制的缓存类的方式

    JavaScrip实现一个有时间限制的缓存类的方式

    本文将探索 JavaScript 中一种基于自动过期机制的时间限制缓存实现方式,提高数据缓存策略的灵活性和效率,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-01-01
  • 在SSM框架下用laypage和ajax实现分页和数据交互的方法

    在SSM框架下用laypage和ajax实现分页和数据交互的方法

    今天小编大家分享一篇在SSM框架下用laypage和ajax实现分页和数据交互的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • JavaScript实现MIPS乘法模拟的方法

    JavaScript实现MIPS乘法模拟的方法

    这篇文章主要介绍了JavaScript实现MIPS乘法模拟的方法,实例分析了JavaScript实现MIPS乘法模拟的运算技巧,需要的朋友可以参考下
    2015-04-04
  • 记录微信小程序 height: calc(xx - xx);无效问题

    记录微信小程序 height: calc(xx - xx);无效问题

    这篇文章主要介绍了微信小程序 - height: calc(xx - xx);无效 问题,文中给大家扩展介绍下jquery点击添加样式,再次点击移除样式的实例代码,需要的朋友可以参考下
    2019-12-12
  • uniapp自定义应用退出执行内容实例代码

    uniapp自定义应用退出执行内容实例代码

    近几日使用uni-app开发移动应用APP遇到了个不常见的需求,下面这篇文章主要给大家介绍了关于uniapp自定义应用退出执行内容的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • JavaScript比较当前时间是否在指定时间段内的方法

    JavaScript比较当前时间是否在指定时间段内的方法

    这篇文章主要介绍了JavaScript比较当前时间是否在指定时间段内的方法,涉及javascript时间与字符串的转换及比较操作相关技巧,需要的朋友可以参考下
    2016-08-08
  • JavaScript对象引用与赋值实例详解

    JavaScript对象引用与赋值实例详解

    这篇文章主要介绍了JavaScript对象引用与赋值,结合实例形式分析了JavaScript对象引用及赋值的操作技巧与相关注意事项,需要的朋友可以参考下
    2017-03-03
  • 如何让easyui gridview 宽度自适应窗口改变及fitColumns应用

    如何让easyui gridview 宽度自适应窗口改变及fitColumns应用

    在使用Easyui GridView时,如果要Gridview的宽度和窗口的宽度相同,只需要设置fitColumns: true即可,感兴趣的你不要走开啊,接下来为您详细介绍
    2013-01-01
  • JavaScript undefined及null区别实例解析

    JavaScript undefined及null区别实例解析

    这篇文章主要介绍了JavaScript undefined及null区别实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07

最新评论