前端数据存储:cookie、localStorage、sessionStorage、indexDB差异分析,及简单使用介绍

一,总述

特性 cookie localStorage sessionStorage indexDB
数据生命周期 一般由服务器生成,可以设置过期时间 除非主动清理,否则一直存在 页面关闭时清理 除非主动清理,否则一直存在
数据存储大小 4K 5M 5M 不限
与服务端通信 每次都会携带在 header 中,对于请求性能影响 不参与 不参与 不参与

使用原则: 如果没有大量数据存储需求的话,可以使用 localStorage 和 sessionStorage 。对于不怎么改变的数据尽量使用 localStorage 存储,否则可以用 sessionStorage 存储。如果是大量数据存储本地的话,可以使用indexDB进行存储(一般网页游戏中可能会用到更多)。但是也有像微信小游戏等平台,是不支持indexDB的,这时候如果我们游戏中需要本地存储大量数据(例如本地做对局回放,需要保存对局数据等),一般会用node的fs模块进行文件管理操作,创建本地文件进行数据储存,来实现indexDB的功能。特别是微信小游戏是提供了相应的api支持这种方式操作的。

二,简单使用介绍

1.cookie

(1)cookie既可以后端设置也可以在前端设置,例如登陆/注册功能,每次都要向服务器请求用户数据,这种就可以把cookie放到前端储存起来。
(2)当网页要发http请求时,浏览器会先检查是否有相应的cookie,有则自动添加在request header中的cookie字段中。
(3)查看当前网页的cookie:在控制台输入 document.cookie
(4)前端设置cookie:document.cookie = XXXX;对于 cookie 来说,我们还需要注意安全性。
这里插入下token的引入(也是解决前后端交互的一种方案):
1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。
2、Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
3、使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库

2.localStorage

(1)保存数据:

localStorage.setItem("key", "value");

(2)获取数据:

var lastname = localStorage.getItem("key");

(3)删除数据语法:

localStorage.removeItem("key");

3.sessionStorage

(1)设置值

sessionStorage.setItem(key,value);

(2)得到值

var data=sessionStorage.getItem(key);

(3)删除值

sessionStorage.removeItem(key);

(4)清除Session中所有的值

sessionStorage.clear();

4.indexDB

(1)打开数据库

var request = window.indexedDB.open(databaseName, version);<
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值