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

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

DDD
DDDオリジナル
2024-12-17 01:07:24888ブラウズ

How Can I Measure Internet Speed Using JavaScript?

JavaScript を使用したインターネット速度の検出

多くのアプリケーションでは、ユーザーのインターネット速度を測定する機能が必要です。常に正確であるとは限りませんが、ユーザーの接続性を示す有益な情報を提供できます。

アプローチ

解決策には、既知のファイル サイズの画像をロードし、ロードにかかる時間に基づく速度。これは次によって行われます。

  1. イメージをロードし、onload ハンドラーを設定します。
  2. Date.getTime() を使用してイメージ ロードの開始時間と終了時間を測定します。
  3. 画像の読み込みにかかる時間を秒単位で計算します。
  4. ファイル サイズをビット単位で、読み込みにかかる時間で割ります。速度をビット/秒 (bps) で取得します。
  5. 読みやすくするために、速度をキロビット/秒 (kbps) とメガビット/秒 (mbps) に変換します。

次のコードは、これを実装します。アプローチ:

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

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。