什么是网络可靠性,以及如何衡量它?

现代网络被各种各样的人们所享用,他们使用各种不同的设备和网络连接类型。您的作品可以触达世界各地的用户,但是为所有用户在 Web 上提供可靠的体验可能具有挑战性。仅仅理解可靠性意味着什么就可能是一个挑战。

离线时可靠

考虑可靠性的一种方式是您的 Web 应用是否可以在没有网络连接的情况下工作。对于从应用商店安装在移动设备上的特定于平台的应用,用户认为这是一种理所当然的可靠性。当您看到其中一个应用的图标时,您希望能够点击它并打开某种体验,而无需考虑您当前是否已连接到互联网。

直到最近,构建在没有网络连接的情况下也可靠的 Web 应用程序一直是一项挑战。

可靠的快速

考虑可靠性的另一种方式是,当用户的网络连接可能不太理想时,他们是否可以依赖您的 Web 应用以足够快的速度加载。当返回用户使用蜂窝网络连接时,他们与您的 Web 应用交互的体验是否与他们使用 Wi-Fi 时相同?以及那些具有高延迟或“虚假 Wi-Fi”连接的用户呢?即使在这些情况下,您的 Web 应用是否也能保持可靠的快速?

仅仅在最佳情况下速度快是不够的。您的用户将通过您的 Web 应用在所有网络条件下的表现来评价其性能。

可靠性是可以实现的

好消息是,现代 Web 平台提供了诸如 Service WorkersCache Storage API 等技术,它们可以作为创建可靠 Web 应用程序的构建块。它们允许您编写位于您的 Web 应用和网络之间的代码。在许多情况下,您可以完全绕过网络,而是使用先前缓存的内容来满足您的 Web 应用的请求。

您的指路明灯:离线时响应 200 OK

一旦您开始构建 Service Worker 并从缓存中提供内容,就很难知道您是否有效地执行了此操作。您如何知道您实现的 Service Worker 真的可以帮助您的 Web 应用避免网络?您如何防止对缓存策略的微小更改破坏您精心设计的离线体验?

Lighthouse 提供了一项特定测试,该测试在构建可靠的 Web 应用时特别令人关注:离线时响应 200 OK

Lighthouse's progressive web app report showing a passing responds with a 200 when offline audit.

这里实际测试的是什么?它可以归结为模拟浏览器中网络连接的丢失,然后尝试加载您网站上正在审核的任何 URL。这测试了构建可靠网站的一个方面——离线时可靠——使用受控、可重复的操作序列。

这是一个旅程

如果您刚刚开始,那么您很可能会在“离线时响应 200”检查中得到否定结果。没关系!除非您使用自定义的入门项目,否则 Web 应用程序默认情况下不具有这种类型的可靠性。接下来的几个指南将介绍您识别 Web 应用正在加载的内容所需的技术,并教您如何使用 Lighthouse 使加载体验可靠。

在整个过程中,我们鼓励您不断重新运行 Lighthouse 审核。它们在您的旅程中充当指路明灯,从新的 Web 应用程序开始,到可靠的渐进式 Web 应用结束。