探索网络信息API

103 阅读2分钟

2007年,我们被邀请在苹果WWDC活动上发言。当时我们不知道为什么被邀请。后来我们了解到,由于最初没有原生SDK,开发者被建议使用JavaScript、HTML和CSS来创建iPhone应用程序,并被鼓励参加我们的会议。显然,自2007年以来,世界已经发生了相当大的变化,但我们当时问苹果团队的一个问题是。"哪些API会提供给开发者与手机一起工作?"我们得到的答案是,苹果打算在增加新的网络API之前与标准机构合作。我们想看到的第一批API之一是关于网络速度的信息,这只是因为移动网络比以太网和WIFI连接慢得多。

网络信息API

快进了12年,在开发者多年来多次尝试测试网络速度之后,WICG提出了一个新的网络信息API:"网络信息API使网络应用程序能够访问设备所使用的网络连接信息"。该建议引入了几个简单的API:

  • navigator.connection.type - 连接的类型,可以是蓝牙、蜂窝、以太网、混合、无、其他、未知、WIFI或WIMAX
  • navigator.connection.effectiveConnectionType - 连接速度的衡量标准,可以是2g、3g、4g或慢2g
  • downlinkMax - 第一个网络跳的下行速度的上限,单位是兆比特/秒
  • downlink - 根据最近观察到的应用层吞吐量,以兆比特/秒为单位的有效带宽估计值
  • rtt - 根据最近观察到的应用层RTT测量值,以毫秒为单位的有效往返时间估计值
  • saveData - 如果用户要求降低数据使用模式,则为true。

浏览器支持和使用案例

Android版Chrome浏览器(78以上)、Android版Firefox浏览器(68以上)和三星互联网(10.1以上)完全支持网络信息API。部分桌面浏览器的支持存在于Chrome 79+和Edge 76+。网络信息API有许多可能的用例。例如,通过慢速或蜂窝网络可以减少带宽消耗,资产可以通过服务工作者得到不同的缓存,如果连接速度太慢,实际上与离线相同,则可以假定离线连接。

结论

虽然自第一代iPhone发布以来,花了十多年的时间才得到这个API,但这是一个令人兴奋的建议,因为它有望让应用程序为较慢的互联网连接提供简化的选项,并允许用户在带宽有限或计量的情况下请求更小的数据请求。如果你需要帮助创建高性能的应用程序或利用新兴的API和最佳实践,请与我们联系,讨论我们可以如何提供帮助