Bump flow version #7211
1 changed files with 40 additions and 2 deletions
|
@ -1,5 +1,5 @@
|
|||
var startTime;
|
||||
var endTime;
|
||||
// var startTime;
|
||||
// var endTime;
|
||||
|
||||
var testConnectionSpeed = {
|
||||
imageAddr: 'https://upload.wikimedia.org/wikipedia/commons/a/a6/Brandenburger_Tor_abends.jpg', // this is just an example, you rather want an image hosted on your server
|
||||
|
@ -12,6 +12,7 @@ var testConnectionSpeed = {
|
|||
InitiateSpeedDetection: function() {
|
||||
window.setTimeout(testConnectionSpeed.MeasureConnectionSpeed, 1);
|
||||
},
|
||||
|
||||
result: function() {
|
||||
var duration = (endTime - startTime) / 1000;
|
||||
var bitsLoaded = testConnectionSpeed.downloadSize * 8;
|
||||
|
@ -20,6 +21,7 @@ var testConnectionSpeed = {
|
|||
var speedMbps = (speedKbps / 1024).toFixed(2);
|
||||
testConnectionSpeed.callback(speedMbps);
|
||||
},
|
||||
|
||||
MeasureConnectionSpeed: function() {
|
||||
var download = new Image();
|
||||
download.onload = function() {
|
||||
|
@ -32,6 +34,42 @@ var testConnectionSpeed = {
|
|||
},
|
||||
};
|
||||
|
||||
function timeout(ms) {
|
||||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
|
||||
const imageAddr = 'https://upload.wikimedia.org/wikipedia/commons/a/a6/Brandenburger_Tor_abends.jpg';
|
||||
const downloadSize = 2707459; // this must match with the image above
|
||||
|
||||
let startTime, endTime;
|
||||
function measureConnectionSpeed() {
|
||||
startTime = (new Date()).getTime();
|
||||
var cacheBuster = '?nnn=' + startTime;
|
||||
|
||||
var download = new Image();
|
||||
download.src = imageAddr + cacheBuster;
|
||||
|
||||
download.onload = function() {
|
||||
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);
|
||||
console.log(speedMbps);
|
||||
return new Promise(resolve => resolve(speedMbps));
|
||||
// return speedMbps;
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
async function getDownloadSpeed() {
|
||||
await timeout(1);
|
||||
const downloadSpeed = await measureConnectionSpeed();
|
||||
console.log(downloadSpeed);
|
||||
}
|
||||
|
||||
// start test immediatly, you could also call this on any event or whenever you want
|
||||
// testConnectionSpeed.getConnectionSpeed(function(time) { console.log(time) });
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue