Heim >Web-Frontend >js-Tutorial >Wie kann ich meine Internetgeschwindigkeit mithilfe von JavaScript schätzen?

Wie kann ich meine Internetgeschwindigkeit mithilfe von JavaScript schätzen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-06 21:48:171007Durchsuche

How Can I Estimate My Internet Speed Using JavaScript?

So erkennen Sie die Internetgeschwindigkeit in JavaScript

JavaScript bietet eine Möglichkeit, die Internetgeschwindigkeit eines Benutzers abzuschätzen. Es ist jedoch wichtig zu beachten, dass die Ergebnisse möglicherweise nicht sehr genau sind.

Implementierung

Das Konzept beinhaltet das Laden eines Bildes mit einer bekannten Dateigröße und das Messen der Ladezeit. Durch Teilen der benötigten Zeit durch die Größe der Bilddatei in Bytes kann eine Schätzung der Internetgeschwindigkeit erhalten werden.

Ein Beispiel finden Sie unter dem unten angegebenen Link:

  • [ Geschwindigkeit mit JavaScript berechnen](https://rosettacode.org/wiki/Calculate_speed_using_javascript)

Beispiel Code

Dieser modifizierte Testfall enthält einen Fix zur Behebung eines potenziellen Problems:

// EXAMPLE ONLY. USE YOUR OWN IMAGE!
var imageAddr = "https://upload.wikimedia.org/wikipedia/commons/3/3a/Bloemen_van_adderwortel_%28Persicaria_bistorta%2C_synoniem%2C_Polygonum_bistorta%29_06-06-2021._%28d.j.b%29.jpg"; 
var downloadSize = 7300000; // bytes

function ShowProgressMessage(msg) {
    // Display progress messages on the console and a progress element on the page.
    if (console) {
        if (typeof msg == "string") {
            console.log(msg);
        } else {
            for (var i = 0; i < msg.length; i++) {
                console.log(msg[i]);
            }
        }
    }
    
    var oProgress = document.getElementById("progress");
    if (oProgress) {
        oProgress.innerHTML = (typeof msg == "string") ? msg : msg.join("<br />");
    }
}

function InitiateSpeedDetection() {
    ShowProgressMessage("Loading the image, please wait...");
    window.setTimeout(MeasureConnectionSpeed, 1);
};    

if (window.addEventListener) {
    window.addEventListener('load', InitiateSpeedDetection, false);
} else if (window.attachEvent) {
    window.attachEvent('onload', InitiateSpeedDetection);
}

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;
        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:", 
            speedBps + " bps", 
            speedKbps + " kbps", 
            speedMbps + " Mbps"
        ]);
    }
}

Fügen Sie im HTML ein Element mit der ID „progress“ ein:

<h1>

Das obige ist der detaillierte Inhalt vonWie kann ich meine Internetgeschwindigkeit mithilfe von JavaScript schätzen?. 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