Heim  >  Artikel  >  Web-Frontend  >  Implementierungscode zur Bestimmung des Netzwerktyps und des Verbindungsstatus durch JS_Javascript-Kenntnisse

Implementierungscode zur Bestimmung des Netzwerktyps und des Verbindungsstatus durch JS_Javascript-Kenntnisse

WBOY
WBOYOriginal
2016-05-16 16:06:131320Durchsuche

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
Der nächste ist ein größerer Sonderfall, das ist Firefox, es verwendet die neue Version der Spezifikation, also gibt es Bandbreite zurück, aber was sehr seltsam ist, ist, dass es 20 zurückgibt, solange es WLAN oder 3G ist Wenn es sich um 2G handelt, wird 0,1953125 zurückgegeben. Es ist jedes Mal dasselbe, unabhängig vom aktuellen Netzwerkstatus. Dieses Problem wird weiterhin weiterverfolgt.

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“.

Viele Ingenieure sind der Meinung, dass die Unterstützung für diese Funktion nicht gut genug ist und dass es besser ist, sie noch nicht zu verwenden. Ich denke jedoch, dass, solange Fehler behandelt und Risiken kontrolliert werden können, nicht eine benutzerfreundlichere Erfahrung bereitgestellt werden kann an die Kunden, die von Natur aus gut sind.

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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn