Heim >Web-Frontend >js-Tutorial >Wie kann ich die Internetgeschwindigkeit mit JavaScript messen?

Wie kann ich die Internetgeschwindigkeit mit JavaScript messen?

DDD
DDDOriginal
2024-12-17 01:07:24887Durchsuche

How Can I Measure Internet Speed Using JavaScript?

Erkennen Sie die Internetgeschwindigkeit mit JavaScript

Viele Anwendungen erfordern die Fähigkeit, die Internetgeschwindigkeit des Benutzers zu messen. Obwohl es nicht immer genau ist, kann es einen hilfreichen Hinweis auf die Konnektivität des Benutzers liefern.

Ansatz

Die Lösung besteht darin, ein Bild mit einer bekannten Dateigröße zu laden und die zu berechnen Geschwindigkeit basierend auf der zum Laden benötigten Zeit. Dies geschieht durch:

  1. Laden des Bildes und Festlegen eines Onload-Handlers.
  2. Messen der Start- und Endzeit des Bildladens mit Date.getTime().
  3. Berechnen der zum Laden des Bildes benötigten Zeit in Sekunden.
  4. Dividieren der Dateigröße in Bits durch die Zeit, um die Geschwindigkeit zu erhalten Bits pro Sekunde (bps).
  5. Umrechnung der Geschwindigkeit in Kilobit pro Sekunde (kbps) und Megabit pro Sekunde (mbps) zur besseren Lesbarkeit.

Beispiel

Der folgende Code stellt eine Implementierung dieses Ansatzes bereit:

var imageAddr = "https://example.com/image.png";
var downloadSize = 7300000; //bytes

function MeasureConnectionSpeed() {
  var startTime, endTime;
  var download = new Image();
  download.onload = function () {
    endTime = (new Date()).getTime();
    showResults();
  };
  
  download.onerror = function (err, msg) {
    ShowProgressMessage("Invalid image, or error downloading");
  }
  
  startTime = (new Date()).getTime();
  var cacheBuster = "?nnn=" + startTime;
  download.src = imageAddr + cacheBuster;
  
  function showResults() {
    var duration = (endTime - startTime) / 1000; //seconds
    var bitsLoaded = downloadSize * 8;
    var speedBps = (bitsLoaded / duration).toFixed(2);
    var speedKbps = (speedBps / 1024).toFixed(2);
    var speedMbps = (speedKbps / 1024).toFixed(2);
    ShowProgressMessage("Your connection speed is:");
    ShowProgressMessage(speedBps + " bps");
    ShowProgressMessage(speedKbps + " kbps");
    ShowProgressMessage(speedMbps + " mbps");
  }
}

Das obige ist der detaillierte Inhalt vonWie kann ich die Internetgeschwindigkeit mit JavaScript messen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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