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

Bagaimana Saya Boleh Anggarkan Kelajuan Internet Menggunakan JavaScript?

Barbara Streisand
Lepaskan: 2024-12-15 20:41:10
asal
195 orang telah melayarinya

How Can I Estimate Internet Speed Using JavaScript?

Cara Anggarkan Kelajuan Internet dalam JavaScript

Soalan: Bagaimana saya boleh membuat halaman JavaScript yang menganggarkan pengguna kelajuan internet dan memaparkannya pada halaman?

Jawapan:

Adalah mencabar untuk mengukur kelajuan internet dengan tepat dalam penyemak imbas kerana faktor di luar kawalan aplikasi web. Walau bagaimanapun, anggaran anggaran boleh diperoleh dengan:

  1. Memuatkan Imej dengan Saiz Diketahui: Muatkan imej dengan saiz fail yang diketahui besar, cth., beberapa megabait.
  2. Mengukur Masa Muatan: Jejaki masa yang diambil untuk imej selesai dimuatkan (cth., menggunakan pendengar acara onload).
  3. Anggaran Kelajuan: Kira anggaran kelajuan internet dengan membahagikan saiz fail imej dengan masa muat yang diukur.

Contoh:

Kod JavaScript berikut menunjukkan proses:

// Image address and file size (in bytes)
var imageAddr = "https://large-image-url";
var downloadSize = 7300000;

// Function to show progress messages
function ShowProgressMessage(msg) {
  // Display messages in the console and a UI element
}

// Function to initiate speed detection
function InitiateSpeedDetection() {
  ShowProgressMessage("Loading image...");
  window.setTimeout(MeasureConnectionSpeed, 1);
}

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

// Function to measure connection speed
function MeasureConnectionSpeed() {
  var startTime, endTime;
  var download = new Image();

  // Event listeners for load and error
  download.onload = 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 to show speed results
  function showResults() {
    endTime = (new Date()).getTime();
    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"
    ]);
  }
}
Salin selepas log masuk

Nota:

  • Anggaran kelajuan mungkin lebih rendah daripada kelajuan sebenar anda disebabkan caching penyemak imbas dan faktor lain.
  • Kaedah ini adalah untuk tujuan demonstrasi sahaja dan tidak boleh digunakan untuk pengukuran kelajuan yang boleh dipercayai.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan