博客
关于我
Local Storage,Session Storage,IndexedDB,Web SQL,Cookies简介
阅读量:534 次
发布时间:2019-03-08

本文共 1240 字,大约阅读时间需要 4 分钟。

一、概述

Local Storage、Session Storage、IndexedDB 和 Web SQL 是浏览器中常用的前端本地存储技术。需要注意的是,Web SQL 已经被废弃,HTML5 的本地存储主要通过 Local Storage 和 Session Storage 实现。Web Storage 使用简单的键值对存储数据,灵活且方便,但对于大量结构化数据的存储较为困难。为了更高效地管理和检索结构化数据,IndexedDB 是一个理想的选择。

二、Cookie

Cookie 是一种小型的本地数据存储技术,主要用于浏览器和服务器之间的通信。其特点包括:

  • 数据在每次 HTTP 请求中携带,占用一定的流量
  • 可设置路径、域名和过期时间
  • 大小限制为 4KB 左右
  • 数据在关闭浏览器后仍然有效

Cookie 通常用于用户身份认证、购物车功能等场景,但由于其明文传输的特点,存在一定的安全隐患。

三、Local Storage 和 Session Storage

Local Storage 和 Session Storage 是 HTML5 中新增的本地存储 API,主要用于客户端的本地数据存储。

  • Local Storage:数据可以永久保存,除非用户显式清除。适合持久化数据存储,可在所有同源窗口中共享,支持存储至多 5MB 的数据。
  • Session Storage:数据仅在当前会话有效,会话结束后数据会被清除。适合会话级别存储,不支持跨窗口共享,同样可存储至多 5MB 的数据。

四、Cookie 与 Local Storage 与 Session Storage 比较

特性 Cookie Local Storage Session Storage
数据生命期 可设置失效时间,默认关闭浏览器后失效 除非显式清除,否则永久保存 会话级存储,会话结束后清除
存储数据大小 4KB 左右 5MB 左右 5MB 左右
与服务器通信 每次 HTTP 请求携带 不参与服务器通信 不参与服务器通信
易用性 接口较友好,开发者封装后使用方便 接口良好,支持 Object 和 Array 接口良好,支持 Object 和 Array
应用场景 用户登录认证、购物车功能 本地游戏数据存储、购物车替代 表单页拆分、用户体验优化
注意事项 不推荐存储敏感数据 不推荐存储敏感数据 不推荐存储敏感数据

五、IndexedDB

IndexedDB 是一个基于对象仓库的非关系型数据库,适用于存储大量结构化数据。其特点包括:

  • 键值对存储:支持直接存储 JavaScript 对象,主键唯一性要求。
  • 异步操作:不会锁死浏览器,提升用户体验。
  • 支持事务:确保数据一致性,避免部分写入。
  • 同源限制:只能访问当前域名下的数据库。
  • 存储空间大:通常不少于 250MB。
  • 二进制存储支持:可存储 ArrayBuffer 和 Blob 数据。

通过以上技术,我们可以根据不同需求选择合适的存储方案。

转载地址:http://zgsiz.baihongyu.com/

你可能感兴趣的文章
opencv glob 内存溢出异常
查看>>
opencv Hog Demo
查看>>
opencv Hog学习总结
查看>>
opencv Mat push_back
查看>>
opencv putText中文乱码
查看>>
OpenCV Python围绕特定点将图像旋转X度
查看>>
opencv resize
查看>>
Opencv Sift和Surf特征实现图像无缝拼接生成全景图像
查看>>
opencv SVM分类Demo
查看>>
OpenCV VideoCapture.get()参数详解
查看>>
opencv videocapture读取视频cap.isOpened 输出总是false
查看>>
opencv waitKey() 函数理解及应用
查看>>
OpenCV 中的图像转换
查看>>
OpenCV 人脸识别 C++实例代码
查看>>
OpenCV 在 Linux 上的 python 与 anaconda 无法正常工作.收到未实现 cv2.imshow() 的错误
查看>>
Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)上
查看>>
opencv 模板匹配, 已解决模板过大程序不工作的bug
查看>>
OpenCV 错误:(-215)size.width>0 &&函数imshow中的size.height>0
查看>>
opencv&Python——多种边缘检测
查看>>
opencv&python——高通滤波器和低通滤波器
查看>>