首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js 存储信息

在JavaScript(JS)中,存储信息可以通过多种方式实现,主要包括以下几种:

1. LocalStorage

  • 基础概念:LocalStorage是HTML5提供的一种持久化存储方式,数据存储在用户的浏览器中,直到被明确删除。
  • 优势:数据持久化,即使浏览器关闭也不会丢失;存储容量较大(通常为5MB)。
  • 应用场景:存储用户偏好设置、主题选择、表单数据等。
代码语言:txt
复制
// 存储数据
localStorage.setItem('username', 'JohnDoe');

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

// 删除数据
localStorage.removeItem('username');

2. SessionStorage

  • 基础概念:SessionStorage与LocalStorage类似,但数据仅在当前会话期间有效,浏览器关闭后数据会被清除。
  • 优势:适用于临时存储会话相关的数据。
  • 应用场景:存储临时表单数据、分步导航的状态等。
代码语言:txt
复制
// 存储数据
sessionStorage.setItem('tempData', 'temporaryValue');

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

3. Cookies

  • 基础概念:Cookies是存储在用户浏览器中的小型数据片段,可以设置过期时间。
  • 优势:兼容性好,几乎所有浏览器都支持;可以设置过期时间。
  • 应用场景:存储用户身份验证信息、跟踪用户行为等。
代码语言:txt
复制
// 设置Cookie
document.cookie = "username=JohnDoe; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/";

// 获取Cookie
function getCookie(name) {
    const value = `; ${document.cookie}`;
    const parts = value.split(`; ${name}=`);
    if (parts.length === 2) return parts.pop().split(';').shift();
}
console.log(getCookie('username')); // 输出: JohnDoe

4. IndexedDB

  • 基础概念:IndexedDB是一种低级API,用于在浏览器中存储大量结构化数据,支持高级查询操作。
  • 优势:存储容量大(通常为250MB以上);支持复杂查询和事务处理。
  • 应用场景:离线应用程序、需要大量数据存储和查询的应用。
代码语言:txt
复制
// 打开数据库
const request = indexedDB.open('myDatabase', 1);

request.onupgradeneeded = function(event) {
    const db = event.target.result;
    const objectStore = db.createObjectStore('users', { keyPath: 'id' });
    objectStore.add({ id: 1, name: 'JohnDoe' });
};

request.onsuccess = function(event) {
    const db = event.target.result;
    const transaction = db.transaction(['users'], 'readonly');
    const objectStore = transaction.objectStore('users');
    const request = objectStore.get(1);

    request.onsuccess = function() {
        console.log(request.result); // 输出: { id: 1, name: 'JohnDoe' }
    };
};

常见问题及解决方法

  1. 存储容量限制
    • 问题:LocalStorage和SessionStorage有存储容量限制(通常为5MB)。
    • 解决方法:使用IndexedDB或服务器端存储来处理大量数据。
  • 数据安全性
    • 问题:敏感数据存储在客户端可能不安全。
    • 解决方法:避免在客户端存储敏感信息,使用HTTPS加密传输数据,必要时使用服务器端存储。
  • 跨域问题
    • 问题:Cookies和LocalStorage受同源策略限制。
    • 解决方法:确保数据在同一域名下访问,或使用服务器端代理来处理跨域请求。

通过以上方法,可以根据具体需求选择合适的存储方式来实现信息的存储和管理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

​使用 Nacos 存储 Sentinel 规则信息

我们可以通过 Zookeeper , Applo , Nacos 等配置中心将这些规则配置存储起来,让服务重启或者启动多节点的时候可以共享配置数据。...增加 Nacos 存储依赖 需要独立引入如下依赖,来申明 sentinel 的规则数据存储在 nacos 中。...: 1, "limitApp": "default", "strategy": 0 } ] Sentinel 查看配置 最后我们启动服务和 Sentinel 控制台,就可以在流控信息这个菜单下面查看到我们在配置中心定义的流控信息...这里有一个小小的问题就是我们在 Sentinel 控制台修改规则过后默认不能直接同步到 Nacos 中,如果需要同步到 Nacos 中的需要修改 Sentinel 控制台的源码,配置信息通过 “推模式”...同步到 Nacos 中存储。

78920
  • Node.js 应用全链路追踪技术——全链路信息存储

    作者:vivo 互联网前端团队- Yang Kun本文是上篇文章《Node.js 应用全链路追踪技术——全链路信息获取》的后续。阅读完,再来看本文,效果会更佳哦。...本文主要介绍在Node.js应用中, 如何用全链路信息存储技术把全链路追踪数据存储起来,并进行相应的展示,最终实现基于业界通用 OpenTracing 标准的 Zipkin 的 Node.js 方案。...因此,做全链路信息存储,需要按照业界公认的 OpenTracing 标准去实现。本篇文章将通过已有的优秀实现 —— zipkin ,来给大家阐述 Node.js 应用如何对接分布式链路跟踪系统。...collector 就是信息收集器,作为一个守护进程,它会时刻等待客户端传递过来的追踪数据,对这些数据进行验证、存储以及创建查询需要的索引。...三、Node.js 接入 zipkin3.1 搞定全链路信息获取这个我在 《Node.js 应用全链路追踪技术——全链路信息获取》 文章中,已经详细阐述了,如何去获取全链路信息。

    1K50

    Redis 亿级用户信息存储实践:bitmap 位图存储

    可以把bitmap想象成一个以bit为单位的数组,数组的每个单元存储0和1,数组的下标叫做偏移量。 Redis 提供 setbit,getbit,bitcount等几个 bitmap 相关命令。...not 5、统计在线人数 设置在线key:“online:active”,当用户登录时,通过setbit设置 bitmap的优势,以统计活跃用户为例 每个用户id占用空间为1bit,消耗内存非常少,存储...5000W 用户,那么一天的数据大约为 50000000/8/1024/1024=6MB 布隆过滤器 bitmap - Redis布隆过滤器 (应对缓存穿透问题) 举例:比如爬虫服务器在爬取电商网站的商品信息时...,首先经过缓存,如果缓存查不到,再去数据库获取信息,因为爬虫的效率很高,且sku很有可能是不存在或者已下架的,就会造成缓存穿透,大量请求被发送到数据库,导致服务器受到影响。...如果布隆过滤器认为商品不存在,就拒绝访问,这样就可以保护存储层。 Data structures are nothing different.

    2.7K20

    敏感信息加密存储

    数据加密是指对某些敏感信息通过加密规则进行数据的变形,实现敏感隐私数据的可靠保护。...涉及客户安全数据或者一些商业性敏感数据,如身份证号、手机号、卡号、客户号等个人信息按照相关部门规定,都需要进行数据加密。...对于数据加密的需求,在现实的业务场景中存在如下情况: 密码样式的文本:安全部门规定需将涉及用户敏感信息,例如银行、手机号码等进行加密后存储到数据库,在使用的时候再进行解密处理。...为了方便大家理解,这篇文章只讲敏感数据信息加密存储 # 配置数据源,底层被 ShardingSphere 进行了代理 dataSources: ds_0: dataSourceClassName...,在应用程序里还是明文,经过 ShardingSphere 代理后,存储数据库时,就已经是密文的了。

    94240

    【应用】信息短时存储

    功能 这是一个在线的应用,用来短时间存储一些信息,以实现在不同设备上共享这些信息的功能。其实目的就是可以将手机上的一些信息快速的复制到电脑上,尤其是在使用Linux系统的时候。下面是该应用的截图。...其中阅后即焚是指信息被访问一次之后就会被销毁。...流程 程序主要的流程就是首先在文本框中输入或者粘贴一些内容,然后保存到服务器(使用的是新浪sae),保存成功之后会返回给客户端一个编号,通过该编号就可以访问存储的内容。.../jquery.js"> js/bootstrap.js"> <script...method=$1&format=$2" 信息存储—memcache 这里存储没有使用数据库,而是使用的memcache,主要是信息只是短期存储,并且数据量不会太大。

    1.6K30

    保存用户信息到本地存储

    启发来自obaby的《WordPress cookie保存用户信息失败–战五渣抓虫记》一文,怎么能少得了我呢。当然了,你在下次评论时会自动填充信息表单,效率是不是很快?...简介:在页面加载时从本地存储中恢复数据,并将已保存的数据显示在对应的输入框中。...定义保存数据函数:saveData函数会从输入框中获取值,并使用localStorage.setItem方法将值保存到本地存储中。...监听输入框输入事件:通过addEventListener方法,将saveData函数绑定到name、email和weburl输入框的input事件上,当输入框中输入信息时自动保存数据。...页面加载时恢复数据:使用window.onload事件,在页面加载完成后检查本地存储中是否存在之前保存的数据,如果存在则将数据填充到相应的输入框中。

    27910

    保存用户信息到本地存储

    简介:在页面加载时从本地存储中恢复数据,并将已保存的数据显示在对应的输入框中。...定义保存数据函数:saveData函数会从输入框中获取值,并使用localStorage.setItem方法将值保存到本地存储中。...监听输入框输入事件:通过addEventListener方法,将saveData函数绑定到name、email和weburl输入框的input事件上,当输入框中输入信息时自动保存数据。...页面加载时恢复数据:使用window.onload事件,在页面加载完成后检查本地存储中是否存在之前保存的数据,如果存在则将数据填充到相应的输入框中。...当输入内容时,saveData() 函数会被触发,并将输入框的值保存到本地存储中。同时,通过在代码中添加console.log()语句,将保存成功的消息输出到控制台。

    46940

    数值信息的机器级存储

    但是我们代码中定义的各种数值又是如何转换为二进制串存储在这些「字节」里面的呢?为什么两个整数相加之后的结果会变成负数? 等等这些类似问题,其实都归咎于 计算机中是如何存储各种类型的数值的。...下图是浮点数存储的标准格式,当然单双精度在各自的模块使用的位数不尽相同。...[image] IEEE 标准规定,单精度和双精度浮点数的存储格式如下: [image] 我们分几种情况来讨论这个浮点数的二进制存储。...规格化存储 非规格化存储 特殊值存储 首先,我们看看规格化的浮点数存储有哪些要求。 这里的 s 用于标识当前的浮点数的正负性,1 和 0 分别代表负数和正数,这没什么说的。...而我们只存储 f,例如: 010111.001 :1.0111001 * 2^4 -> 我们只存储 f = 0.0111001 这样会很方便我们读取,因为我们知道尾数一定位于 0 - 1 之间,所以当我们读取的时候

    1.4K60

    vue中使用localStorage存储信息

    一、什么是localStorage 对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,它包含两种:localStorage 和 sessionStorage...sessionStorage(临时存储) :为每一个数据源维持一个存储区域,在浏览器打开期间存在,包括页面重新加载 localStorage(长期存储) :与 sessionStorage 一样,但是浏览器关闭后...(注意:第一次访问时本地还没有存储Cookie,所以此时获取不到值); 当第二次访问(或在进行cookie设置后,过期前所有的访问)时,请求头信息你中都会把Cookie值携带。...vue中实践 根据我的需求来的一个默认记住上次选择的,很简单 添加数据的时候,下次添加默认记住我上次的选择 所以,在添加或者提交的时候存储值即可, localStorage.setItem('projectId...一般的浏览器能存储的是5MB左右。sessionStorage api与localStorage相同。 sessionStorage默认的有效期是浏览器的会话时间(也就是说标签页关闭后就消失了)。

    3.1K10
    领券