js之客户端存储

概述

客户端存储
cookie
Storage
sessionStorage
localStorage
IndexedDB
打开
事务
游标
索引

主要包含

  • 名称
  • 路径
  • 过期时间
  • 安全标志

Storage

存储的主要方法有

  • clear()
  • setItem(name, value)
  • getItem(name)
  • removeItem(name)
  • key(index)

两个实例有

  • sessionStorage
  • localStorage

事件有

  • storage, 事件对象的属性有
    • domain
    • key
    • newValue
    • oldValue

IndexedDB

IndexedDB
IDBRequest
IDBDatabase
IDBCursor
IDBKeyRange
IDBIndex

打开:indexedDB.open(dbname, version),返回对象为IDBRequest,其支持事件onerroronsuccess,事件 对象属性有

  • event.target:为请求
  • event.target.result:为IDBDatabase
  • event.target.errorCode:错误码

如果数据库不存在,会触发事件upgradeneeded
IDBDatabase:其支持的属性和方法有

  • objectStoreNames
  • deleteObjectStore(table)
  • createObjectStore(table)

事务访问形式有,其支持的事件有onerror,oncomplete

  • db.transaction():对数据库的所有对象存储有只读权限
  • db.transaction(数组/字符串):对数据库的指定对象存储有只读权限

事务访问权限有

  • "readonly"
  • "readwrite"
  • "versionchange"

获取对象存储

javascript 复制代码
const store = transaction.objectStore(table);

对象存储支持的方法有,其返回的请求对象支持的事件有onerror,onsuccess

  • get(key)
  • add():有重复时会报错
  • put()
  • delete()

游标操作使用,其支持的事件有onerror,onsuccess,事件对象event.target.resultIDBCursor

javascript 复制代码
const request = store.openCursor();

IDBCursor的属性有

  • direction:值有NEXT("next"),NEXTUNIQUE("nextunique"),PREV("prev"),PREVUNIQUE("prevunique")
  • key
  • value
  • primaryKey

方法有

  • update()
  • delete()
  • continue()
  • advance(count)

游标打开时可以指定键范围使用IDBKeyRange,其支持的方法有

  • only():一个参数
  • lowerBound():第二个参数表示是否包含自身,false表示包含, true表示不包含
  • upperBound():第二个参数表示是否包含自身,false表示包含, true表示不包含
  • bound():下限的键,上限的键,是否跳过下限,是否跳过上限

索引创建

javascript 复制代码
const index = store.createIndex("username", "username", {unqiue : true});

获取索引

javascript 复制代码
const index = store.index("username");

索引游标操作,其事件result.key为索引键

javascript 复制代码
const reqeust = index.openCursor();
const reqeust = index.openKeyCursor();//result.key为索引键,result.value为主键

索引查询

javascript 复制代码
const request = index.get("008");//获取单条记录
const request = index.getKey("008");//result.value为主键

IDBIndex的属性有

  • name
  • keyPath
  • objectStore
  • unique

objectStore对象存储中有属性indexNames

删除索引使用

javascript 复制代码
store.deleteIndex("username");
相关推荐
ccddsdsdfsdf12 小时前
DBeaver怎么链接mongoDB
数据库·mongodb
GISer_Jing13 小时前
Three.js着色器编译机制深度解析
javascript·webgl·着色器
丷丩13 小时前
MapLibre GL JS第22课:查看本地GeoJSON
前端·javascript·map·mapbox·maplibre gl js
油炸自行车13 小时前
Claude Code 错误:API Error: 400 Failed to deserialize the JSON body into the
开发语言·javascript·json·trae·claude code·api error 400
丷丩13 小时前
Postgresql基础实践教程(十一)各种Join
数据库·postgresql·join
星夜夏空9914 小时前
FreeRTOS学习(4)——内存映射
数据库·学习·mongodb
TheRouter14 小时前
AI Agent 记忆体系建设实战:短期、长期与工作记忆的工程实现
数据库·人工智能·oracle
Omics Pro14 小时前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言
JAVA面经实录91716 小时前
Hibernate面试题库
数据库·oracle·hibernate
迷枫71216 小时前
DM8 目录结构与常用排查入口梳理
服务器·数据库