navigation.onLine(H5的属性)、online、offline(H5的事件)
1. Appcache 是从浏览器的缓存中分出来的一块缓存区,要想在这个缓存中保存数据,可以使用一个描述文件(manifest file),列出要下载和缓存的资源。
2. 查看应用缓存的状态:applicationCache 对象(JS的API)的 status 属性
3. 应用缓存的事件,表示其状态的改变:checking、error、noupdate、downloading、progress、updateready、cached
4. applicationCache.update():应用缓存去检查描述文件是否更新,触发 checking 事件
applicationCache.swapCache():启用新应用缓存
1. Cookie:cookie 在客户端和服务器之间来回传递,以键值对的形式存储,并进行 URL 编码。
(1)限制:遵循同源策略、存储数量有限、存储大小有限(大约 4KB)
(2)构成:名称(name)、值(value)、域(domain)、路径(path)、失效时间(expires)、安全标志(secure)
其中,名称和值必须经过 URL 编码,失效时间默认为浏览器会话期间,安全标志则代表 cookie 只有在使用 SSL 连接时才发送到服务器。
(3)JS 中的 cookie:document.cookie(BOM 属性)、encodeURIComponent()- 编码、decodeURIComponent()- 解码
基本的 cookie 操作有三种:读取(get)、写入(set)和删除(unset),详见红宝书。
(4)子 cookie
2. IE 用户数据:持久化用户数据,遵循同源策略,用户数据允许每个文档最多 128KB 数据,每一个域名最多 1M 数据。要使用的话,首先需要使用 CSS 在某个元素上指定 userData 行为。
3. Web 存储机制:Storage 类型,包括 sessionStorage 对象、globalStorage 对象的属性(已被 localStorage 对象替代)、localStorage 对象,这三个都是 Storage 的实例。
(1)Storage 类型:只能存储字符串,非字符串会被转换成字符串。存储大小(5M 左右)。
(2)sessionStorage 对象:浏览器会话期间有效,属性方法同上。如果 在IE8 中要将数据强行写入磁盘,在设置新数据之前使用 begin()方法,并且在所有设置完成之后调用 commit()方法。
(3)globalStorage 对象:遵循同源策略,长久保存,属性方法同上,可以设置访问规则。
(4)localStorage 对象:遵循同源策略,长久保存,属性方法同上,不可以设置访问规则。
4. IndexedDB:是在浏览器中保存结构化数据的一种数据库。 IndexedDB 设计的操作完全是异步进行的。差不多每一次 IndexedDB 操作,都需要注册 onerror 和 onsuccess 事件处理程序。
(1)数据库:打开数据库 —— indexDB.open(数据库名)、指定数据库的版本号 —— db.setVersion(版本号)
(2)对象存储空间:db.creatObjectStore()、store.add()- 插入新值、store.put()- 更新值
(3)事物:创建事物 —— db.transaction(),表示事物级的状态信息的事件处理程序:onerror 和 oncomplete 。
objectStore()、add()、put()、delete()、clear()
(4)使用游标查询:openCursor()、key、value、update()、delete()、continue(key)、advance(count)
(5)键范围:向 openCursor()中传入的第一个参数:IDBkeyRange.only()、IDBkeyRange.lowerBound()、IDBkeyRange.upperBound()、IDBkeyRange.bound()
(6)设定游标方向:向 openCursor()中传入的第二个参数:IDBCursor.PREV 或 IDBCursor.PREV_NO_DUPLICATE
(7)索引:创建索引 —— createIndex()、index()、get()、indexNames、deleteIndex()
(8)并发问题:onversionchange()、setVersion()
(9)限制:遵循同源策略,存储限制,访问本地文件的限制(不同浏览器限制不同)。