如何使我的单个 HTML 网页在 Chrome 中离线可用?
How to make my single-HTML web page available offline in Chrome?
我在我的网络服务器上托管一个 HTML 网页(所有设计元素都包含在 .html 文件本身中),我想让它可供我的离线时的用户。它应该是这样工作的:当用户在线时,他访问我的网页,Chrome将.html文件保存在本地;当用户离线并尝试访问我的网页时,Chrome 正在使用本地 .html 文件。 JavaScript 即使在离线模式下也必须在网页上工作。用户在访问我的页面时绝不能看到 你离线 错误消息,并且我的页面保存的副本不得从浏览器的缓存中过期至少 2 周。一切都必须自动为用户工作,无需更改 Chrome 设置,也无需安装 Chrome 扩展。这可能吗?
附带的JavaScript足够聪明,可以使用window.localStorage
保存数据,并在用户再次在线时立即与服务器同步。
我自己从未这样做过,但您可以使用缓存 API(service-worker API 的一部分)来存储 URL 可寻址资源(如 html 文件).
您可以设置 HTTP headers,使其在 2 周或更长时间后过期。但是,如果有人清除了他们的缓存(例如有时删除了他们的浏览器历史记录),它就会消失。
https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/offline-for-pwa
这是指南---> https://davidwalsh.name/cache
这个页面似乎在做:https://chris.bolin.co/offline/。它适用于 Firefox 和 Chrome。在 Chrome 中,它似乎在使用服务工作者。 Firefox 55 也可以使用服务工作者。
服务工作者可以使用缓存API下载页面;但是缓存 API 在 Firefox 中不使用用户的 cookie,因此缓存的内容可能与用户看到的不同。
在 Firefox 中,可以在文件/离线工作中启用(强制)离线模式。
在Chrome中,可以为开发者工具中的当前选项卡启用(强制)离线模式(Ctrl-Shift-J):在网络选项卡中, 启用离线。
在 Firefox 55 中,离线缓存似乎默认工作(不需要 manifest.json
)。
Chrome 需要 service workers 使页面离线可用。
以下是在 JavaScript 中检测离线模式的方法:
<script>document.write('navigator.onLine=' + navigator.onLine);</script>
我在我的网络服务器上托管一个 HTML 网页(所有设计元素都包含在 .html 文件本身中),我想让它可供我的离线时的用户。它应该是这样工作的:当用户在线时,他访问我的网页,Chrome将.html文件保存在本地;当用户离线并尝试访问我的网页时,Chrome 正在使用本地 .html 文件。 JavaScript 即使在离线模式下也必须在网页上工作。用户在访问我的页面时绝不能看到 你离线 错误消息,并且我的页面保存的副本不得从浏览器的缓存中过期至少 2 周。一切都必须自动为用户工作,无需更改 Chrome 设置,也无需安装 Chrome 扩展。这可能吗?
附带的JavaScript足够聪明,可以使用window.localStorage
保存数据,并在用户再次在线时立即与服务器同步。
我自己从未这样做过,但您可以使用缓存 API(service-worker API 的一部分)来存储 URL 可寻址资源(如 html 文件).
您可以设置 HTTP headers,使其在 2 周或更长时间后过期。但是,如果有人清除了他们的缓存(例如有时删除了他们的浏览器历史记录),它就会消失。
https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/offline-for-pwa
这是指南---> https://davidwalsh.name/cache
这个页面似乎在做:https://chris.bolin.co/offline/。它适用于 Firefox 和 Chrome。在 Chrome 中,它似乎在使用服务工作者。 Firefox 55 也可以使用服务工作者。
服务工作者可以使用缓存API下载页面;但是缓存 API 在 Firefox 中不使用用户的 cookie,因此缓存的内容可能与用户看到的不同。
在 Firefox 中,可以在文件/离线工作中启用(强制)离线模式。
在Chrome中,可以为开发者工具中的当前选项卡启用(强制)离线模式(Ctrl-Shift-J):在网络选项卡中, 启用离线。
在 Firefox 55 中,离线缓存似乎默认工作(不需要 manifest.json
)。
Chrome 需要 service workers 使页面离线可用。
以下是在 JavaScript 中检测离线模式的方法:
<script>document.write('navigator.onLine=' + navigator.onLine);</script>