PWA 遇坑记(一)

阅读时长 7 分钟读完

前言

PWA (Progressive Web Application) 是一种新型的 web 应用模式,可以实现像原生应用一样的体验。前端开发人员可以利用 service worker 等技术来使网站具备离线访问、推送通知等特性。然而,在实际开发过程中我们也会遇到各种坑点,本文将一一探究。

缓存策略

前端缓存

前端缓存需要谨慎使用,不当的缓存策略可能导致缓存“过度”,使用户看到的是旧页面而不是更新后的内容。为了避免这种情况,我们可以参考以下几种策略:

  • 立即缓存:可以在 service worker 安装阶段就将资源缓存,这样用户就可以立即访问到更新后的页面。
  • 懒惰缓存:该策略可以将一些不经常访问的资源延迟缓存,但这样可能会增加后续的请求次数。
-- -------------------- ---- -------
------------------------------ ----- -- -
  -- ----------------------------------- -- --------------------------------- -- ---------------------------------- -
    ------------------
      ---------------------------
        -------------- -- -
          -- ---------- -
            ------ ---------
          - ---- -
            ------ ------------------------------------ -- -
              ------ ---------------------------------------- -- -
                ------------------------ ------------------
                ------ ---------
              ---
            ---
          -
        --
    --
  -
---

后端缓存

后端缓存也是实现 PWA 离线缓存的一种方式。我们可以使用例如 LocalStorage、IndexedDB 等数据库系统,将网站上最新的数据存储在本地,这样即使用户处于离线状态,也可以查看之前的数据。

离线页面(Offline page)

离线页面是指特定页面,在用户离线的情况下,可以以特定方式进行缓存的页面。离线页面是 Progressive Web App 中必不可少的一环。

PWA 使用离线页面的方法是在 service worker 安装阶段进行缓存:

-- -------------------- ---- -------
-------------------------------- --------------- -
  ---------------- -- --------------------------------------- ------
    ----------------------------------------------- - -- ------------
      ------ --------------
        --------------- -- --------------
        -------------------------
        --------------------
        ----------------------
      ---
    --
  --
---

当用户离线时,通过 service worker 来通知离线页面,告诉用户当前网站不可用。

-- -------------------- ---- -------
------------------------------ --------------- -
  ------------------
    --------------------------------------------------- - -- -----------------
      ------ -------- -- -------------------------------------------- - -- ------------
        ------
          --------------------
          --------------------- -
            ------------------------ ------------------
          --
          -------------------- -
            ----------------- -- -----
          ---
        ------ ---------
      ---
    ------------------- -
      ------ -----------------------------
    --
  --
---

安装 PWA

PWA 的安装分为两个步骤,一是什么时刻提示用户安装,二是如何实现安装功能。

我们可以在 service worker 的安装过程中添加一个安装按钮,用户可以点击该按钮进行安装。

-- -------------------- ---- -------
-------------------------------- --------------- -
  ----------------
    ----------------------------------------------- -
      ------ --------------
        ----------------
        -------------------------
        --------------------
        ----------------------
      ---
    ----------------------------
  --

  --------------------------------- --------------- -
    --------------------------------------
  ---
---

------------------------------ --------------- -
  ------------------
    --------------------------------------------------- -
      ------ -------- -- -------------------------------------------- -
        ----------------------------------------------- -
          ------------------------ ------------------
        ---
        ------ ---------
      ---
    ------------------- -
      ------ -----------------------------
    --
  --
---

-------------------------------------------- --------------- -
  -----------------------
  --- --- - ---------------------------------
  ------------- - --- -----
  ----------------------------- ---------- -
    ---------------
  ---
  -------------------------------
---

总结

PWA 的开发虽然坑点较多,但凭借其离线缓存、推送通知等特性,已经成为现代 web 应用开发的不二选择。在实际开发过程中,我们需要注意前端缓存、后端缓存和离线页面的缓存策略,并且实现 PWA 的安装功能,让用户更加方便地使用我们的 Web 应用程序。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64df26b6f6b2d6eab3a5341e

纠错
反馈