Rumah >hujung hadapan web >tutorial js >Bagaimana Saya Boleh Anggarkan Kelajuan Internet Saya Menggunakan JavaScript?

Bagaimana Saya Boleh Anggarkan Kelajuan Internet Saya Menggunakan JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-06 21:48:171014semak imbas

How Can I Estimate My Internet Speed Using JavaScript?

Cara Mengesan Kelajuan Internet dalam JavaScript

JavaScript menyediakan cara untuk menganggar kelajuan internet pengguna, walaupun penting untuk ambil perhatian bahawa hasilnya mungkin tidak begitu tepat.

Pelaksanaan

Konsep ini melibatkan memuatkan imej dengan saiz fail yang diketahui dan mengukur masa ia mengambil masa untuk memuatkan. Dengan membahagikan masa yang diambil dengan saiz fail imej dalam bait, anggaran kelajuan internet boleh diperolehi.

Contoh boleh didapati di pautan yang disediakan di bawah:

  • [ Kira Kelajuan menggunakan JavaScript](https://rosettacode.org/wiki/Calculate_speed_using_javascript)

Sampel Kod

Kes ujian yang diubah suai ini menggabungkan pembetulan untuk menangani isu yang berpotensi:

// 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"
        ]);
    }
}

Dalam HTML, masukkan elemen dengan ID "kemajuan":

<h1>

Atas ialah kandungan terperinci Bagaimana Saya Boleh Anggarkan Kelajuan Internet Saya Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn