通信速度を計測する関数

JavaScript で作成した。jQuery を利用したので作成も何もない。

必要なファイル

  • jquery-1.11.1.min.js
  • なんか画像ファイル

ソース

function SpeedTest(){
    var start = (new Date()).getTime();
    $.get('http:///www.hoge/huga.png?' + start, function(data) {
        var end = (new Date()).getTime();
        var sec = (end - start) / 1000;
        var mbps =  (( (data.length *8) / sec)/1000000).toFixed(5);
        alert((mbps) + 'Mbps');
    });
};

解説みたいなもの

jQuery を利用することで簡単に実装した。エラー処理も何もない。$.getは成功した時のみ何らかの処理を実行するらしい。

  • var start = (new Date()).getTime();で、関数が呼ばれた時点の時間を取得する。

  • $.get( url, data, callback )という文法に従って書く。参考:jQuery.get( url, data, callback )

  • sec = (end - start) / 1000;で、getTime()で得られるのはミリ秒なので、秒へと換算する。

  • data.lengthで得られるのはバイト単位なので、8をかけてビットへと換算。取得するのにかかった秒数で割ることでbpsが得られるので、メガバイト換算するために1,000,000で割る。

  • (Number).toFixed(5)で有効桁数5桁にしている。

終わり。