0

当没有网络可用时,我们希望在离线模式下提供几个屏幕。

我们想使用 HTML5 缓存功能,我们可以缓存一些 HTML 和 JS 文件,但是我们可以缓存主配置文件吗?

这是正确的方法吗?您能否建议正确的方法 wrt 种子框架。

4

1 回答 1

0

在继续之前,请注意 HTML5 应用程序缓存似乎是目前已弃用的功能。也就是说,您可以将 HTML5 应用程序缓存与 SeedStack 一起使用,尽管加载应用程序所涉及的文件数量使其有点不切实际,因为此过程目前不是自动化的。

要使用 SeedStack Web 应用程序实现离线模式,您必须:

  • 自定义母版页模板。默认模板不包含 manifest 属性,因此您必须将其替换为您自己的。您可以从类路径中查找masterpage.htmlmasterpage-fallback.html文件以用作起点。添加以下配置属性以指向您自己的母版页模板:

    org.seedstack.w20.masterpage-template = path/to/my-masterpage.html
    
  • manifest在您的母版页模板的标记上添加属性<html>,指向 HTML5 appcache 清单:

    <html manifest="my-app.appcache" ...>
    
  • 将详尽的清单添加到您的应用程序 Web 资源中,例如 undersrc/main/webapp或 under META-INF/resources

我的测试表明,对于刚刚生成的 Web 应用程序(使用业务主题),您需要在清单中添加 63 个 URL 才能使其工作。

为了简化清单维护,您可以选择通过删除标记data-w20-app-version上的属性来禁用缓存清除机制<html>。这将删除所有 URL 中的版本后缀。

在 IE/Edge 中,您必须小心一些限制或限制:

  • 缓存条目有数量限制(IE10 中为 1000,在较新版本中不知道)。
  • 这是基于客户端机器卷大小的整个缓存的大小限制。
  • 清单必须与 text/cache-manifest mime 类型一起提供。
  • no-store cache 选项不能提供任何资源。

有关 Edge 的更多信息:https ://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/dev-guide/networking-and-connectivity/application-cache/

于 2016-10-17T14:11:02.420 回答