# [译]什么是网络可靠性,您如何衡量?
现代网络受到广大人民的喜爱,使用各种不同的设备和类型的网络连接。你的作品可以触达全世界的用户,但是为你的所有用户提供一个可靠的网络体验是很有挑战性的。仅仅理解可靠性意味着什么就是一个挑战。
# 离线使用
考虑可靠性的一种方法是,如果没有网络连接,您的web应用程序是否可以运行。这是一种用户认为理所当然的可靠性,就像“本机应用”,安装在应用商店的移动设备上。当你看到一个本地应用程序的图标时,你希望能够点击它并打开使用,而不管你当前是否连接到互联网。
直到最近,在没有网络连接的情况下构建可靠的web应用程序一直是一个挑战。
# 快速访问
另一种考虑可靠性的方法是,当用户的网络连接可能不太理想时,他们是否能够以足够快的速度加载您的web应用程序。用户在使用手机流量连接时与使用wi-fi时与您的web应用程序进行交互的体验是否相同?而那些具有高延迟的用户体验怎么样呢,或者说“lie-fi”连接,即使在这些情况下,你的web应用程序也能可靠地快速运行吗?
在最佳情况下保持快速还不够。您的用户将通过查看web应用在所有网络条件下的行为来查看其性能。
# 可靠性是可以做到的
好消息是,现代web平台提供了Service Worker
和Cache Storage API
等技术,它们可以作为创建可靠web应用程序的构建块。它们允许您编写位于web应用程序和网络之间的代码。在许多情况下,您可以完全绕过网络,而是使用以前缓存的内容来满足您的web应用程序的请求。
# 您的指路明灯:离线时响应200 OK
一旦你开始构建一个Service Worker
并从缓存中提供内容,就很难知道你是否有效地做到了这一点。你怎么知道你实现的Service Worker
真的帮助你的web应用避开了网络?如何防止缓存策略的微小更改破坏精心设计的脱机体验?
Lighthouse提供了一个在构建可靠web应用程序时特别感兴趣的特定测试:离线时以200 OK响应:
实际的界面可能因您运行的灯塔版本而异。
这里实际上正在测试什么?它可以模拟浏览器中失败的的网络请求,然后尝试加载站点上的任何URL。这使用可控的,可重复的操作序列来测试构建可靠站点的一个方面(离线可靠性)。
# 这是一次征程
如果你刚开始,那么你很有可能会在离线检查时得到一个200的负面结果。没关系!除非您使用的是自定义的入门项目,否则web应用程序在默认情况下不具备这种可靠性。接下来的几篇指南将介绍识别web应用程序加载内容所需的技术,并教您如何使用Lighthouse使加载体验可靠。
在此过程中,我们鼓励您继续运行Lighthouse审核。从新的Web应用程序开始,到可靠的渐进式Web应用程序结束,它们将为您的整个旅程提供指导。
原文链接:https://web.dev/network-connections-unreliable/