跳到主要内容位置

Storage API:利用 SessionStorage 和 LocalStorage 管理网站数据

Cookie 是一个常用的浏览器存储机制,但它有着很多限制,如大小限制、安全性问题等。为了解决这些问题,浏览器提供了更为灵活和安全的存储机制,其中包括 sessionStorage 和 localStorage。

sessionStorage

sessionStorage 存储的数据只在当前浏览器窗口或标签页中有效,当用户关闭浏览器窗口时会被销毁。使用 sessionStorage 非常简单,可以通过以下方式写入数据:

// 写入数据到 sessionStorage
sessionStorage.setItem('key', 'value');

然后可以通过以下方式读取数据:

// 从 sessionStorage 中读取数据
var value = sessionStorage.getItem('key');

如果要删除数据,可以使用以下代码:

// 从 sessionStorage 中删除数据
sessionStorage.removeItem('key');

需要注意的是,sessionStorage 只能存储字符串类型的数据。如果要存储其他类型的数据,需要使用 JSON.stringify() 方法将它们转换为字符串,然后再存储到 sessionStorage 中。在读取数据时,需要使用 JSON.parse() 方法将字符串转换为原始数据类型。

localStorage

localStorage 存储的数据则可以一直保存到用户手动清除浏览器缓存或使用代码删除数据为止。与 sessionStorage 不同,localStorage 的数据在同一域名下的所有窗口和标签页中都共享数据。使用 localStorage 的方式与使用 sessionStorage 类似,可以通过以下方式写入数据:

// 写入数据到 localStorage
localStorage.setItem('key', 'value');

然后可以通过以下方式读取数据:

// 从 localStorage 中读取数据
var value = localStorage.getItem('key');

如果要删除数据,可以使用以下代码:

// 从 localStorage 中删除数据
localStorage.removeItem('key');

需要注意的是,localStorage 也只能存储字符串类型的数据。如果要存储其他类型的数据,需要使用 JSON.stringify() 方法将它们转换为字符串,然后再存储到 localStorage 中。在读取数据时,需要使用 JSON.parse() 方法将字符串转换为原始数据类型。

适用场景

sessionStorage 和 localStorage 可以用于存储用户的偏好设置、表单数据、登录状态等等。使用它们可以避免在不同页面之间反复传递数据,从而提高应用程序的性能和用户体验。需要注意的是,由于 localStorage 的数据可以在不同窗口和标签页中共享,因此在存储敏感信息时需要格外小心,以避免泄露用户隐私信息。

总结

sessionStorage 和 localStorage 是非常有用的浏览器存储机制,它们比 Cookie 更加灵活和安全。使用它们可以帮助开发者更好地管理客户端数据。需要注意的是,在存储数据时需要根据实际情况进行适当的设置,以达到最佳的性能和安全性。

提示

一系列的课程让你成为高级前端工程师。课程覆盖工作中所有常用的知识点和背后的使用逻辑,示例全部都为工作项目简化而来,学完即可直接上手开发!

即使你已经是高级前端工程师,在课程里也可能会发现新的知识点和技巧,让你的工作更加轻松!

《React 完全指南》课程,包含 React、React Router 和 Redux 详细介绍,所有示例改编自真实工作代码。点击查看详情。

《Vue 3.x 全家桶完全指南与实战》课程,包括 Vue 3.x、TypeScript、Vue Router 4.x、Vuex 4.x 所有初级到高级的语法特性详解,让你完全胜任 Vue 前端开发的工作。点击查看详情。

《React即时通信UI实战》课程,利用 Storybook、Styled-components、React-Spring 打造属于自己的组件库。

《JavaScript 基础语法详解》本人所著图书,包含 JavaScript 全面的语法知识和新特性, 可在京东、当当、淘宝等各大电商购买