当用户无法访问 Internet 时,我可以将本地存储用于移动 HTML5 web 应用程序作为后备吗?

Can I use local storage for a mobile HTML5 webapp as a fallback when user loses internet access?

我正在制作一个移动 HTML5 网络应用程序,我想知道是否可以使用本地存储让用户在失去互联网访问权限时仍然可以使用该应用程序。

基本的想法是,当他们有 wi-fi / 3G 时,他们会下载 HTML 和数据,但当他们无法访问互联网时,他们至少可以访问带有旧缓存数据的最新版本(警告数据可能不会在他们再次访问互联网之前保持最新)。

本地存储可以做到吗?


当然。 localStorage 的用途之一是启用离线应用程序。

您可以查看(详见此处):

1
window.navigator.onLine

查看您是在线还是离线,或者只是:

1
2
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,它还允许您存储 Blobs(或文件)(文件 API 即将推出,目前仅适用于 Chrome)。