【问题标题】:Progressive web applications and CMS-driven websites渐进式 Web 应用程序和 CMS 驱动的网站
【发布时间】:2016-09-18 20:48:47
【问题描述】:

Addy OsmaniJake Archibald 等开发人员的谈话中,我对离线优先、渐进式网络应用程序很感兴趣。然而,当我观看这些时,它似乎总是在网络应用程序的上下文中,有人会使用 SPA 来构建聊天应用程序、照片应用程序,并与来自 API 端点的数据进行交互。

我通常与使用 CMS 构建 10k+ 页面的客户合作,这些页面具有各种长度和组合的各种不同内容:所见即所得的内容、横幅、表单等。

离线优先的渐进式 Web 应用程序是否可以用于 CMS 驱动的工作?如果是这样,要考虑保持渐进增强的最佳做法是什么?

【问题讨论】:

  • 嗯,这不是我想要的。我了解从何处获取有关如何将其实施到 Web 应用程序中的信息。在使用诸如 Craft、ExpressionEngine 或 Wordpress 等拥有 10k 多页各种内容的 CMS 时,不一定是最佳策略(如果它甚至适用)。

标签: offline-caching offlineapps progressive-enhancement progressive-web-apps


【解决方案1】:

简而言之,Progressive Web Apps 是一个具有良好 UX、响应式 UI 的网站。它必须有Service Workermanifest.json

离线优先的渐进式 Web 应用程序是否可以用于 CMS 驱动的工作?如果是这样,要考虑保持渐进增强的最佳做法是什么?

因此,如果您的目标是 CMS,您的问题很可能是:

1。是否可以将Service Worker 集成到 CMS 驱动的工作中?

答案是肯定的,无论 Service Worker 的前端还是后端离线优先的技术都不关心在任何一方运行什么,而只处理来自浏览器的外部请求的“端点”。

例如:

  • 您想让/css/style.css 文件在离线时可加载。
  • 您需要做的就是告诉 Service Worker 缓存此文件,并在网络不可用时使用它。

2。保持渐进增强的最佳做法是什么?

  • 这取决于您使用的 CMS(流行的可能已经有 SW 插件)
  • 你喜欢什么。大多数 CMS 用户更喜欢通过插件或一些自动化工具来处理事情......

...但在我看来,Service Worker 的插件总是会受到用例的限制。如果您想使用“推送”、“通知”等其他功能,它可能会使工作复杂化......

=> 所以对我来说最好的做法是“不使用 CMS 插件”(手动编码)

附言

如果你决定按照我的建议去做,GoogleChrome 团队有一个小型 js 库,名为“sw-toolbox”。简而言之,一个简单的网站只需要不到 10 行代码,而这个工具可以启用离线优先功能。 (请注意,我不计算后台同步、推送、动态数据缓存...或任何高级功能)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多