如何使用HTML5/JavaScript检查连接类型(WiFi/LAN/WWAN)

How do I check connection type (WiFi/LAN/WWAN) using HTML5/JavaScript?

本文关键字:WiFi LAN 类型 WWAN 连接 何使用 HTML5 JavaScript 检查      更新时间:2024-04-21

如果客户端通过WWAN(按流量计费)连接或其他方式连接,我希望将特定网站定制为低带宽版本。

连接类型对于站点知道它应该提供丰富的体验还是带宽高效的体验是很重要的。我的桌面运行在按流量计费的连接上,未来将有更多的桌面通过按流量计费蜂窝网络(包括Windows 8平板电脑)连接,高效的网络应用程序应该尊重用户可能不需要按字节付费连接的高细节资产。

如何检查客户端是否使用HTML5/JavaScript通过WiFi/LAN/WWAN连接?

注意:我不想明确检查浏览器标题(这不是一个真正的解决方案,适用于可以通过多种方法连接到互联网的桌面浏览器)。

请参见navigator.connection(带前缀)。此API公开有关客户端带宽的信息。

你不能。关于客户端如何连接到服务器的信息(即,如果是按字节付费或统一费率,则使用哪些技术)是不公开的。如果这对你有帮助的话,你可能会得到一个跟踪路由(包括所有与跟踪有关的问题),但JavaScript无法访问这些信息。

JS可以做的是简单的带宽测试。通过XHR下载一个已知大小的文件,并测量所需的时间。

连接的付费模式是绝对的私人数据。它既不会被发送到互联网上的服务器,也不会被加载的网站使用。如果您需要这些信息来为客户端提供自定义应用程序,请直接询问用户。如果他愿意,他会告诉你的。


然而,等等。可以设置最新的Chrome和Firefox(用户偏好),以提供实验navigator.connection对象上的数据。

此外,为了开发Metro应用程序,Windows提供了有关Windows.Networking.Connectivity API的信息,请参阅本教程。

也许你处理它的方式不对。看看Gmail的模型。他们有一个富客户端,如果页面加载需要很长时间,用户可以选择退出。标准客户端要轻得多,并且使用更"传统"的web设计
尝试自动检测不应该发生的事情可能会让你陷入一个很深的兔子洞。

老问题,但在寻找自己的目的时,我发现了这个——我还没有尝试过,因此YMMV:https://github.com/ashanbh/detectClientSpeed.

测量下载资产的时间以获得带宽信息的基本概念是主观的,不一定是一致的,但缺少iOS/Android的本地平台API,这不是一个糟糕的选择。一个更轻松的替代方案可能是测量类似google.com的ping时间。