ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript を使用してインターネット速度を推定するにはどうすればよいですか?

JavaScript を使用してインターネット速度を推定するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-15 20:41:10
オリジナル
195 人が閲覧しました

How Can I Estimate Internet Speed Using JavaScript?

JavaScript でインターネット速度を推定する方法

質問: ユーザーの速度を推定する JavaScript ページを作成するにはどうすればよいですか?インターネット速度を確認し、ページ?

答え:

Web アプリケーションでは制御できない要因があるため、ブラウザーでインターネット速度を正確に測定することは困難です。ただし、おおよその推定値は次の方法で取得できます。

  1. 既知のサイズのイメージをロードする: 既知の大きなファイル サイズ (例: 数メガバイト) のイメージをロードします。
  2. 読み込み時間の測定: 画像の読み込みが完了するまでにかかる時間を追跡します。 (例: onload イベント リスナーの使用)。
  3. 速度の推定: 画像ファイルのサイズを測定された読み込み時間で割ることにより、推定インターネット速度を計算します。

例:

次の JavaScript コードは、 process:

// 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"
    ]);
  }
}
ログイン後にコピー

注:

  • ブラウザのキャッシュやその他の要因により、推定速度は実際の速度よりも低くなる可能性があります。
  • この方法はデモンストレーションのみを目的としており、信頼性の高い速度測定には使用しないでください。

以上がJavaScript を使用してインターネット速度を推定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート