您现在的位置是:首页 > 伤感句子

前端存储之sessionStorage和localStorage

作者:胡椒时间:2024-04-26 15:55:49分类:伤感句子

简介  文章浏览阅读1.4k次,点赞2次,收藏4次。sessionStorage是一种用于web浏览器中临时保存数据的客户端存储机制。它允许在同一个浏览器窗口的会话期间,保存和访问临时数据,而这些数据在用户关闭窗口或者标签页会被清除。_sessionstorage

点击全文阅读

sessionStorage

sessionStorage是一种用于web浏览器中临时保存数据的客户端存储机制。它允许在同一个浏览器窗口的会话期间,保存和访问临时数据,而这些数据在用户关闭窗口或者标签页会被清除。每个sessionStorage对象都与当前的浏览器会话相关联,当会话结束时,数据也将会被删除。

作用域:sessionStorage的数据仅在同一个浏览器窗口中共享,不同的窗口之间的数据是隔离的。即使在同一个域名下,不同窗口之间的sessionStorage也是独立。生命周期:sessionStorage数据的生命周期限制在当前会话期间。会话期间指的是用户在同一个窗口中保持打开状态,只要用户在这个窗口中进行操作,数据就会一直保留。但一旦用户关闭了窗口或标签页,sessionStorage中的数据就会被清除。存储容量:每个sessionStorage对象的存储容量通常在5M至10M之间。虽然比cookie的容易大很多,但仍然是有限制的。存储类型:sessionStorage只能存储字符串类型的数据。如果需要存储其他数据类型,需要使用JSON.stringify()将其转换为字符串进行存储,再使用JSON.parse()进行读取时转换回来的数据类型。
// 存储数据到sessionStoragesessionStorage.setItem('username', 'John');sessionStorage.setItem('isLoggedIn', 'true');// 从sessionStorage读取数据const username = sessionStorage.getItem('username'); // "John"const isLoggedIn = sessionStorage.getItem('isLoggedIn'); // "true"// 删除sessionStorage中的数据sessionStorage.removeItem('username');sessionStorage.removeItem('isLoggedIn');// 清空sessionStorage中的所有数据sessionStorage.clear();

localStorage

localStorage是一种用于在web浏览器中持久保存数据的客户端存储机制。它允许在浏览器保存键值对形式的数据,并且这些数据在用户关闭浏览器后任然存在。
localStorage特点:

作用域:localStorage的数据在同一个域名下是共享的,不同的窗口之间也是共享的。即使在不同的浏览器窗口或标签页中,只要它们属于同一个域名,localStorage中的数据都是可以共享的。生命周期:localStorage中的数据在浏览器中是持久保存的,除非被显式删除,或者用户清除了浏览器缓存。即使用户关闭了浏览器窗口或标签页,localStorage中的数据仍然保留,下次用户访问网站时依然可用。存储容易:每个域名下的localStorage对象的存储容量通常在5MB至10MB之间(不同浏览器可能有所不同)。相比于cookie和sessionStorage,localStorage的存储容量较大,适合存储较大量的数据。存储类型: localStorage只能存储字符串类型的数据。如果需要存储其他数据类型(例如对象或数组),需要使用JSON.stringify()将其转换为字符串进行存储,再使用JSON.parse()进行读取时转换回原来的数据类型。
举个例子:
// 存储数据到localStoragelocalStorage.setItem('username', 'John');localStorage.setItem('isLoggedIn', 'true');// 从localStorage读取数据const username = localStorage.getItem('username'); // "John"const isLoggedIn = localStorage.getItem('isLoggedIn'); // "true"// 删除localStorage中的数据localStorage.removeItem('username');localStorage.removeItem('isLoggedIn');// 清空localStorage中的所有数据localStorage.clear();

localStorage、sessionStorage、session的区别

cookiesessionStoragelocalStorage都是在前端用于存储数据的机制,但它们之间有一些重要的区别,主要体现在以下几个方面:

存储容量:

cookie:每个cookie的大小限制在4KB左右,每个域名下的cookie数量也有限制(通常为20个)。sessionStorage:每个域名下sessionStorage的大小限制通常在5MB至10MB之间(不同浏览器可能有所不同)。localStorage:每个域名下localStorage的大小限制通常在5MB至10MB之间(不同浏览器可能有所不同)。

生命周期:

cookie:可以设置过期时间,可以在过期时间之前一直存在于客户端。如果没有设置过期时间,则会话结束时cookie会被删除(即会话cookie)。sessionStorage:数据在同一个会话(页面关闭前)中一直存在,关闭浏览器标签或窗口后会被清除。localStorage:数据会一直存在,除非被显式删除或浏览器清除缓存。

作用域:

cookie:每个cookie都有域名的限制,只能在设置cookie的域名及其子域名下使用。sessionStorage:数据仅限于同一个窗口(或同一个标签页)中,不同窗口或标签页之间的数据不共享。localStorage:数据在同一个域名下共享,不同窗口或标签页之间的数据可以共享。

与服务器交互:

cookie:每次请求都会带上相应的cookie数据,因此可以用于与服务器交互,例如实现用户登录状态的保持。sessionStoragelocalStorage:仅存在于客户端,不会随每次请求一起发送给服务器,只能在前端使用。

安全性:

cookie:由于每次请求都会带上cookie数据,如果包含敏感信息,需要特别注意安全性,并使用HttpOnlySecure等选项来增强安全性。sessionStoragelocalStorage:数据仅在客户端保存,相对较安全,但不适合保存敏感信息。

根据以上的区别,可以根据具体的需求选择合适的存储方式。如果需要与服务器交互或保持登录状态等,可以使用cookie;如果仅在页面会话期间保存临时数据,可以使用sessionStorage;如果需要长期保存数据或在不同页面共享数据,可以使用localStorage

点击全文阅读

郑重声明:

本站所有活动均为互联网所得,如有侵权请联系本站删除处理

我来说两句