我对 Addy Osmani 等开发人员的演讲中的离线优先、渐进式 Web 应用程序很感兴趣。和 Jake Archibald 。然而,当我观看这些内容时,它似乎总是处于 Web 应用程序的上下文中,其中有人会使用 SPA 构建聊天应用程序、照片应用程序,并与来自 API 端点的数据进行交互。
我通常与使用 CMS 构建 10k+ 页面的客户合作,这些页面包含各种不同长度和组合的不同内容:所见即所得内容、横幅、表单等。
离线优先、渐进式 Web 应用程序是否可以用于 CMS 驱动的工作?如果是这样,要考虑保持渐进增强的最佳实践是什么?
最佳答案
简而言之,渐进式 Web 应用程序是一个具有良好 UX 和响应式 UI 的网站。并且它必须具有带有 manifest.json
的 Service Worker
。
Are offline-first, progressive web applications possible for CMS-driven work? If so, what are best practices to consider to maintain progressive-enhancement?
因此,如果您的目标是 CMS,您的问题可能是:
1。是否可以将 Service Worker
集成到 CMS 驱动的工作中?
答案是肯定的,无论前端还是后端离线优先技术,Service Worker 并不关心两边运行的是什么,而只处理来自浏览器的外部请求的“端点”。
例如:
- 您希望使
/css/style.css
文件在离线时可加载。 - 您需要做的就是告诉 Service Worker 缓存此文件,并在网络不可用时使用它。
2。要考虑保持渐进增强的最佳实践是什么?
- 这取决于您使用的 CMS(热门的 CMS 可能已经有软件插件)
- 你更喜欢什么。大多数 CMS 用户更喜欢通过插件或一些自动化工具来处理事情......
...但在我看来,Service Worker 的插件始终会受到用例的限制。如果您想使用其他功能,如“推送”、“通知”...等,它可能会使工作变得复杂...
=> 所以对我来说,最佳实践是“不使用 CMS 插件”(手动编码)
附注
如果您决定采用我的建议,GoogleChrome 团队有一个名为“sw-toolbox”的小型 js 库。简而言之,一个简单的网站将需要不到 10 行代码,并且该工具可以启用离线优先功能。 (请注意,我没有计算后台同步、推送、动态数据缓存...或任何高级功能)
关于offline-caching - 渐进式 Web 应用程序和 CMS 驱动的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37366141/