如何用 PWA 技术实现可离线的电子商务网站?

阅读时长 7 分钟读完

前言

近年来,随着移动端设备的普及,手机成为了人们生活中不可或缺的工具之一。同时,人们对于网站性能和用户体验的要求也越来越高。因此,一种名为“渐进式Web应用程序(PWA)”的技术逐渐兴起。该技术不仅可以提高网站性能,改善用户体验,还能实现离线访问。

在本文中,我们将深入介绍如何用 PWA 技术实现可离线的电子商务网站。

什么是 PWA?

PWA(Progressive Web Apps),即渐进式Web应用程序,是一种利用现代Web开发技术,以更接近原生应用的方式进行打造的Web应用程序。它可以提供更好的性能、更好的用户体验,同时也支持离线访问。

为什么选择 PWA 实现电商网站?

使用PWA技术可以带来以下好处:

  1. 更好的性能 - 由于PWA角色更接近于本机应用,因此加载速度比普通Web应用程序更快。

  2. 更好的用户体验 - PWA不像普通的Web应用程序,需要将用户从浏览器中打开到一个新的页面。它们能够在屏幕上为用户提供与本机应用程序相同的体验。

  3. 支持离线访问 - PWA将网站缓存到设备上,在没有互联网连接的情况下仍然能够访问。

如何实现一个可离线的 PWA 电商网站?

步骤一:创建代表性页面

在开始之前,首先需要创建一个代表性的电商页面。在该页面上,您需要使用必需的 HTML 、CSS和Javascript创建一个完整的网站。在这个例子中,我们将使用 React框架来搭建电商网站。

下面是一个基础的电商页面:

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

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

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

-------

步骤二:添加 PWA 功能

在创建了页面之后,您需要添加PWA功能。幸运的是,Google为我们提供了Workbox库,可使此进程非常简单。

在这个例子中,我们将使用Workbox推荐的方法。Workbox 提供了一个 CLI 工具,你可以安装它,使用如下命令:

然后,运行下面的命令,可以自动添加 PWA 功能所需的文件和代码:

运行上述命令会引导您完成以下步骤:

  1. 提供您网站的URL。
  2. 配置您的缓存策略,以决定哪些文件需要缓存。
  3. 配置您的服务工作线程的名称和位置。
  4. 确认您的配置。

运行完上述命令后,您会发现项目根目录下生成了一个 javascript文件夹,其中包含了 PWA 所需的相关文件。

步骤三:注册服务工作线程

PWA 的核心是服务工作线程。服务工作线程是一种允许网络请求被拦截、存储和操作响应的 JavaScript Worker。我们需要在网站根目录下创建一个service-worker.js文件和一个注册脚本registerServiceWorker.js 。

registerServiceWorker.js 的基本代码如下:

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

需要说明的是,在浏览器的开发模式下无法启动 ServiceWorker,为了达到这个目的,在开发中可以安装 npm 包 serve,使用 serve 命令可以开启一个本地服务器将应用运行起来,方式如下:

步骤四:缓存并离线

下一步是要确保您的网站可以缓存并离线访问。我们需要做的第一件事就是添加一个缓存清单。此清单定于哪个文件是需要缓存和离线访问的。

通过以上代码,Workbox 将缓存host root下的所有文件。接下来,如果您想多缓存一些特定的请求,可以使用precacheAndRoute

步骤五:支持推送通知

最后,我们还需要将电商网站的 PWA 功能扩展到桌面,并将其开发为桌面应用程序。在实现这个功能之前,您需要生成安全密钥。请按照以下步骤生成 Key:

  1. 打开控制台。
  2. 选择“应用程序”。
  3. 在较新的版本中,您将看到通知部分。单击查看一些密钥和 ID。
  4. 单击“生成”的按钮,然后从生成的密钥和ID中选择一个。
-- -------------------- ---- -------
-- ------
----- ---------------------- - ----- -- -- -
  ----- -------------- - ----------
  ----- ---------- - --- ---------------------
  ----- -------- - ----- ------------------------------------------------------ -
    ------ ---
  ---
  ----- ------------ - ----- --------------------------------
    ---------------- -----
    --------------------- ----------------------------------
  ---
  ------ ----------------- -
    ------- -------
    ----- -----------------------------
    -------- -
      --------------- ------------------
    -
  ---
-

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

步骤六:测试您的电商网站

完成以上步骤后,您可以测试您的在线电商网站。启动本地服务器 serve -s build,并在工具栏上单击“安装”按钮以添加缩略图。使用Chrome DevTools的Network Tab可以模拟无网络情况,然后浏览您的网站看看是否支持离线访问。

总结

本文深入介绍了如何使用PWA技术实现可离线的电子商务网站,并介绍了相关代码示例。如果您正在开发一个类似的网站,希望这篇文章能对您有所帮助。PWA技术是一项重要的进步,有助于提高网站性能和用户体验,同时使我们的应用变得更加可靠。

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

纠错
反馈