概述
客户端存储
cookie
Storage
sessionStorage
localStorage
IndexedDB
打开
事务
游标
索引
cookie
主要包含
- 名称
- 值
- 域
- 路径
- 过期时间
- 安全标志
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,其支持事件onerror和onsuccess,事件 对象属性有
event.target:为请求event.target.result:为IDBDatabaseevent.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.result为IDBCursor
javascript
const request = store.openCursor();
IDBCursor的属性有
direction:值有NEXT("next"),NEXTUNIQUE("nextunique"),PREV("prev"),PREVUNIQUE("prevunique")keyvalueprimaryKey
方法有
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的属性有
namekeyPathobjectStoreunique
objectStore对象存储中有属性indexNames
删除索引使用
javascript
store.deleteIndex("username");