Heim >Web-Frontend >js-Tutorial >Implementierungscode zur Bestimmung des Netzwerktyps und des Verbindungsstatus durch JS_Javascript-Kenntnisse
Chinas Mobilfunknetzwerkumgebung ist komplex. Um Benutzern ein besseres Zugriffserlebnis zu bieten, hoffen Entwickler, die aktuelle Netzwerkmethode des Benutzers zu verstehen und ihm dann ein Anfrageergebnis bereitzustellen, das der aktuellen Netzwerkumgebung entspricht.
Die W3C-Spezifikation bietet eine Methode zum Abrufen des aktuellen Netzwerkstatus navigator.connection; gemäß der Protokollspezifikation Working Draft vom 29. November 2012 können wir die Bandbreite (Bandbreite, M/s) und die gemessenen Parameter aus der Schnittstelle ermitteln ; es bietet auch eine Überwachungsmethode, um Änderungen in der Zugriffsumgebung jederzeit zu überwachen. Tatsächlich stellten wir fest, dass viele Browser den Bandbreitenwert nicht zurückgaben, dem Working Draft 07. Juni 2011-Protokoll entsprachen und uns den Typ (Typ, wifi/2g/3g/4g) zurückgaben.
Werfen wir einen Blick auf die Unterstützung der einzelnen Unternehmen
Android 2.3 Browser | UC | Dolphin | QQ浏览器 | Baidu | Firefox | Chrome | Opera Mini | Maxthon |
Yes | No* | Yes | Yes* | Yes | Yes(New) | No | No | Yes |
Die relevanten Informationen können von keinem Browser auf dem iPhone abgerufen werden.
Anhand der obigen Beschreibung haben wir festgestellt, dass wir über diesen Parameter immer noch den Internetverbindungsstatus einer großen Anzahl von Benutzern verstehen und ihnen ein besseres Erlebnis bieten können.
Als nächstes konzentrieren wir uns auf den Rückgabestatus jedes Browsers.
Die meisten Browser geben einen int-Typ zurück, der den Typnamen zurückgibt. Die entsprechende Beziehung ist wie folgt
返回值 | QQ返回值 | 类型 |
0 | unknown | UNKNOWN |
1 | ethernet | ETHERNET |
2 | wifi | WIFI |
3 | 2g | CELL_2G |
4 | 3g | CELL_3G |
5 | 4g | CELL_4G(中国现在也会出现这个值,是hspa ) |
? | none | NONE |
Stellen Sie Ihnen eine Demo-Adresse zur Verfügung:
http://demo.jb51.net/js/2015/net.html
In der Demo wird {type:0} direkt an Browser zurückgegeben, die keine Verbindung unterstützen, wodurch das Problem gelöst wird, dass einige Browser dies nicht unterstützen. Es ist auch angemessen, Browser zu behandeln, die keine Verbindung unterstützen und auf das Internet zugreifen können als „unbekannt“.
Heute hat mein Klassenkamerad darüber gesprochen, dass das Backend die Geschwindigkeit beurteilen kann. Dies mag etwas schwierig sein, aber es ist tatsächlich möglich, die ungefähre Geschwindigkeit des Benutzers durch jede asynchrone Anfrage zu ermitteln vom Frontend erhalten) und wählen Sie dann „Bestimmte Dienste auf sexorientierte Weise bereitstellen“ aus und planen Sie, in Zukunft mehr in diese Richtung zu denken.