基本的にはこのようにこれを行う:を通じて例えば画像を固定サイズのファイルをロードし
- スタートタイマー
- AJAX呼び出し
- ストップタイマー
- いくつかのサンプルを取り、平均badwidth
Somethignリクを計算Eこれは仕事ができる:
//http://upload.wikimedia.org/wikipedia/commons/5/51/Google.png
//Size = 238 KB
function measureBW(cnt, cb) {
var start = new Date().getTime();
var bandwidth;
var i = 0;
(function rec() {
var xmlHttp = new XMLHttpRequest();
xmlHttp.open('GET', 'http://upload.wikimedia.org/wikipedia/commons/5/51/Google.png', true);
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4) {
var x = new Date().getTime() - start;
bw = Number(((238/(x/1000))));
bandwidth = ((bandwidth || bw) + bw)/2;
i++;
if (i < cnt) {
start = new Date().getTime();rec();
}
else cb(bandwidth.toFixed(0));
}
};
xmlHttp.send(null);
})();
}
measureBW(10, function (e) {
console.log(e);
});
をvar xmlHttp = new XMLHttpRequest();
は、すべてのブラウザで動作していないわけではありませんことを、あなたは、ユーザーエージェントをチェックし、右の1
そしてもちろん、そのわずか推定値を使用する必要があります。
相続人JSBin例
あなたの携帯電話を使用しているときに文明の途中で何が起こっていますか?ユーザエージェントが何のために使われているか知っていますか? –
ええ、それはより良い品質の画像をロードします、これはブラックベリーで。 – Paul
ブラウザまたはアプリ?アプリケーションを使用している場合は、ネットワークに接続するために使用されるハードウェアの情報、信号強度、技術(2G、3G、LTE、WiFi)にアクセスするため、この場合アプリは消費する帯域幅を決定できます。ちなみに、ブラウザもアプリなので、うーん...ノートパソコン、USBモデム、ブラウザを使ってどこでも真っ暗にテストし、それがまだ機能しているかどうかを言うとよいでしょう。 –