目录:

  1. localStorage
  2. sessionStorage
  3. cookie
  4. indexedDB

localStorage

  1. localStorage存储的数据能在跨浏览器会话保留
  2. 数据可以长期保留,关闭会话,数据不会被清除
  3. 存储的键值对,是以字符串的形式存储的,数值类型会自动转化为字符串。

用法

// 等价,键值对以字符串形式存储,和js对象不一样
window.localStorage.setItem('x',1) // '1'
window.localStorage.setItem('x','1') // '1' // 等价
localStorage.color = 'red'
localStorage['color'] = 'red'
localStorage.setItem('color','red') localStorage.setItem('age',18)
localStorage.getItem('age')
localStorage.removeItem('age')
localStorage.clear(); // 清除所有localStorage

参考:

  1. MDN:window.localStorage

sessionStorage

  1. 页面会话结束时会被清除
  2. 键值对以字符串形式存储

用法

sessionStorage.setItem('name','zhangsan')
sessionStorage.getItem('name')
sessionStorage.removeItem('name')
sessionStorage.clear()

运用

页面刷新时恢复表单内容

        <form action="#" method="post">
<label for="name">name
<input type="text" id="name" placeholder="Input your name" value="hello thank you ">
</label>
<button id="submit" type="submit">submit</button>
</form>
// 页面刷新时恢复表单内容
let name = document.getElementById('name'); // 事件侦听,存储输入框内容
name.addEventListener('change',function(e) {
window.sessionStorage.setItem('name',e.currentTarget.value)
}) // 判断有无缓存,没有返回null
if(sessionStorage.getItem('name')) {
name.value = sessionStorage.getItem('name');
}

cookie

是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie使基于无状态的HTTP协议记录稳定的状态信息成为了可能。

用途

  1. 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
  2. 个性化设置(如用户自定义设置、主题等)
  3. 浏览器行为跟踪(如跟踪分析用户行为等)

缺点

服务器指定cookie后,请求中都会携带cookie,会带来额外的性能开销。

创建cookie

res.setHeader('Set-Cookie',['type=ninjia','langauge=javascript'])  // nodejs
res.cookie('rememberme','1',{domanin:'example.com',expires:new Date()}) // express

在以后的请求中,req头部将被添加cookie信息,如:

  req.cookies // cookies: { rememberme: '1' },

cookie类别

  • 会话期cookie
  • 持久化cookie

JavaScript通过document.cookies操作cookie

只能访问非httpOnly标记的cookie

document.cookie = 'name=zhangsan'
document.cookie = 'age = 20' // 浏览器请求cookie中将会添加cookie

indexedDB

事务型数据库系统,用于存储大量结构化的数据

window.indexedDB.open('test') // 创建、打开数据库

参考:

localStorage sessionStorage cookie indexedDB的更多相关文章

  1. 客户端 localStorage, sessionStorage, cookie 的区别

    SessionStorage, LocalStorage, Cookie这三者都可以被用来在浏览器端存储数据,而且都是字符串类型的键值对! 区别在于前两者属于WebStorage,创建它们的目的便是存 ...

  2. localstorage sessionstorage cookie的区别

    一.基本概念 Cookie cookie比较小,大小限制在4kb左右,是网景公司的前雇员 LouMontulli 在1993年3月的发明.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记 ...

  3. localstorage sessionstorage cookie 备忘

    /* sessionStorage: 保存的数据用于浏览器的一次会话,当会话结束(通常是该窗口关闭),数据被清空: localStorage: 保存的数据长期存在,下一次访问该网站的时候,网页可以直接 ...

  4. 本地存储 localStorage/sessionStorage/cookie

    cookie是个基础的东西.是服务器发送到客户端,存储在客户端的一小段数据.可以存储一些配置信息,客户标识信息等.用户下次访问这个网站时,会把上次网站发来的cookie一同发送回去.cookie保存在 ...

  5. localStorage,sessionStorage,cookie使用场景和区别

    localStorage:HTML5新增的在浏览器端存储数据的方法.设置和获取localStorage的方法: 设置: localStorage.name = 'zjj'; 获取: localStor ...

  6. localStorage&sessionStorage&Cookie

    localStorage.sessionStorage.Cookie三者区别如下:

  7. localStorage,sessionStorage,cookie区别

    localStorage:HTML5新增的在浏览器端存储数据的方法.设置和获取localStorage的方法: 设置: localStorage.name = 'zjj'; 获取: localStor ...

  8. 深入了解浏览器存储:对比Cookie、LocalStorage、sessionStorage与IndexedDB

    摘要: 对比Cookie.LocalStorage.sessionStorage与IndexedDB 作者:浪里行舟 Fundebug经授权转载,版权归原作者所有. 前言 随着移动网络的发展与演化,我 ...

  9. 本地存储常用方式 localStorage, sessionStorage,cookie 的区别 和 服务器存储session

    本地存储:把一些信息存储到客户端本地(主要目的有很多,其中有一个就是实现多页面之间的信息共享)       1. 离线缓存(xxx.manifest)  H5处理离线缓存还是存在一些硬伤的,所以真实项 ...

随机推荐

  1. 设计模式系列之观察者模式(Observer Pattern)

    意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新. 主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作 ...

  2. 查看Eclipse版本号及各个版本区别

    1. 找到eclipse安装目录 2. 进入readme文件夹,打开readme_eclipse.html 3. readme_eclipse.html呈现的第二行即数字版本号,如: Eclipse ...

  3. python接口自动化-post请求3

    一.SSL 证书 https 的请求相对于http安全级别高,需要验证SSL证书import urllib3 使用这个方法就可以了urllib3.disable_warnings() 可忽略警告 二. ...

  4. day09(垃圾回收机制)

    1,复习 文件处理 1.操作文件的三步骤 -- 打开文件:硬盘的空间被操作系统持有 | 文件对象被应用程序持续 -- 操作文件:读写操作 -- 释放文件:释放操作系统对硬盘空间的持有 2.基础的读写 ...

  5. Photoshop快速给美女人像换头发

    今天给大家带来的教程是应用PS来抠出人物图片的发丝和修改头发的颜色. OK开始今天的教程 1.将素材文件拖拽进PS,CTRL+J复制一层. 2.应用快速选择工具大致的将头发部分选区出来,不需要太过仔细 ...

  6. C#创建安装、卸载部署程序

    分享3: 需求:对已经开发的应用程序进行安装封装操作,即创建安装.卸载部署程序: 分析:程序的开发是为了在不同的人在不同的机器上使用,为了使不同机器使用该软件就需要见程序安装包,并且保证安装包中必须包 ...

  7. How do I copy files that need root access with scp

    server - How do I copy files that need root access with scp? - Ask Ubuntuhttps://askubuntu.com/quest ...

  8. mysql-笔记-numberic 方法 操作符

    DIV 整数除法---结果舍去小数部分, /除法 ---除以0时返回 null值 -减法 % MOD 取模 ---结果为 余数 也可以用于有小数部分的数返回余数,mod(N,0)返回null值 + 加 ...

  9. mysql-笔记-控制语句/string方法

    1 case case value when [compare_value] then result [when[compare_value] then result....] [else resul ...

  10. springdata jpa查询用like时候需要输入该属性的类型字节码