[关闭]
@demonly 2017-01-13T07:06:51.000000Z 字数 784 阅读 964

离线应用与客户端存储

JavaScript


离线检测

可以通过 navigator.onLine 属性来检测设备是否能够上网,值为 false 表示设备离线。
同时 HTML5还定义了 online 和offline 事件,这两个事件分别在从离线变为在线和从在线变为离线时触发,这两个事件在 window 对象上触发。

应用缓存

Appcache 应用缓存是从浏览器的缓存中分出来的一块缓存区。要想在这个缓存中保存数据,可以使用一个描述文件,列出要下载和缓存的资源。下面是一个描述文件的示例。

  1. CACHE MANIFEST
  2. #Comment
  3. file.js
  4. file.css

引入描述文件可以在<html>标签的 manifest 属性中指定这个文件。

  1. <html manifest="/offline.manifest">

通过 aaplicationCache 对象可以了解到应用缓存的状态。这个对象只有一个 status 属性,属性的值表示应用缓存的状态。

0:无缓存,即没有与页面相关的应用缓存。
1:闲置,即应用缓存为得到更新。
2:检查中,即正在下载描述文件并检查更新。
3:下载中,即应用缓存正在下载描述文件中指定的资源。
4:更新完成,即应用缓存已经更新了资源。
5:废弃,即应用缓存的描述文件已经不存在了。

关于应用缓存也定义了许多事件,表示其状态的改变。

checking:在浏览器为应用缓存查找更新时触发。
error:在检查更新或下载资源期间发生错误时触发。
noupdate:在检查描述文件发现文件无变化时触发。
downloading:在开始下载应用缓存资源时触发。
progress:在文件下载应用缓存的过程中持续不断地触发。
updateready:在页面新的应用缓存下载完毕时触发。

在页面加载时应用缓存就会检查更新,也可以通过调用 update()方法手动让应用缓存检查更新。通过 swapCache()方法可以启用新应用缓存。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注