我正在制作一个移动 HTML5 网络应用程序,我想知道是否可以使用本地存储让用户在失去互联网访问权限时仍然可以使用该应用程序。
基本想法是,当他们有 wi-fi / 3G 时,他们会下载 HTML 和数据,但当他们无法访问互联网时,他们至少可以使用旧缓存数据访问最新版本(并警告数据可能达不到直到他们再次访问互联网)。
这可以通过本地存储实现吗?
我正在制作一个移动 HTML5 网络应用程序,我想知道是否可以使用本地存储让用户在失去互联网访问权限时仍然可以使用该应用程序。
基本想法是,当他们有 wi-fi / 3G 时,他们会下载 HTML 和数据,但当他们无法访问互联网时,他们至少可以使用旧缓存数据访问最新版本(并警告数据可能达不到直到他们再次访问互联网)。
这可以通过本地存储实现吗?
当然。目的之一localStorage
是启用离线应用程序。
你可以检查(见这里了解详情):
window.navigator.onLine
查看您是在线还是离线,或者只是:
window.addEventListener("offline", offlineFunc, false)
window.addEventListener("online", onlineFunc, false)
localStorage
如果离线,您可以通过部分更新页面来提供存储的内容。
另一种方法是使用cache manifest
.
在这里您可以定义如果浏览器脱机时哪些文件可用,哪些需要网络等。
有关详细信息,请参见此处:
https ://en.wikipedia.org/wiki/Cache_manifest_in_HTML5
http://diveintohtml5.info/offline.html
除此之外,localStorage
您还可以使用IndexedDB
which 还允许您存储Blobs
(或文件)(File API即将推出,目前仅适用于 Chrome)。