博客
关于我
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/

你可能感兴趣的文章
Python网络爬虫基础进阶到实战教程
查看>>
Python 初学者需要知道的四条建议
查看>>
Python 判断字符串是否包含子字符串
查看>>
python 判断当前时间是否为零点
查看>>
python 利用pandas读取本地中CSV文件的指定列 列名重命名 并保存回本地
查看>>
python 利用pyspark读取HDFS中CSV文件的指定列 列名重命名 并保存回HDFS
查看>>
python 利用pyttsx3文字转语音
查看>>
python 利用已有Ner模型进行数据清洗合并
查看>>
python 到大数据开发工程师_如何成为一个大数据开发工程师?
查看>>
python 加密解密(base64, AES)
查看>>
Python 包管理器和 Node.js
查看>>
Python 单词字母顺序不变且所有倒排
查看>>
python 反射机制
查看>>
python 启动提示IDLE's subprocess didn't make conne...
查看>>
python 命令接口_实现“[命令][操作][参数]”样式的命令行接口?
查看>>
Python 和 OpenCV.如何检测图像中的所有(填充)圆形/圆形对象?
查看>>
Python 和 RabbitMQ - 聆听来自多个渠道的消费事件的最佳方式?
查看>>
python编辑器打不开_关于命令ride.py打不开RF,而是打开pycharm编辑器问题解决思路...
查看>>
python编译exe同时支持32位_第三周:同时管理64位和32位版本的Python,并用Pyinstaller打包成exe...
查看>>
Python 和Java 哪个更适合做自动化测试?
查看>>