Created
October 19, 2017 02:45
-
-
Save aloha1003/f52827dee83cfe3637aeb10ab294c6b5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//JUST AN EXAMPLE, PLEASE USE YOUR OWN PICTURE! | |
var imageAddr = "http://www.kenrockwell.com/contax/images/g2/examples/31120037-5mb.jpg"; | |
var downloadSize = 4995374; //bytes | |
function ShowProgressMessage(msg) { | |
if (console) { | |
if (typeof msg == "string") { | |
console.log(msg); | |
} else { | |
for (var i = 0; i < msg.length; i++) { | |
console.log(msg[i]); | |
} | |
} | |
} | |
var oProgress = document.getElementById("progress"); | |
if (oProgress) { | |
var actualHTML = (typeof msg == "string") ? msg : msg.join("<br />"); | |
oProgress.innerHTML = actualHTML; | |
} | |
} | |
function InitiateSpeedDetection() { | |
ShowProgressMessage("Loading the image, please wait..."); | |
window.setTimeout(MeasureConnectionSpeed, 1); | |
}; | |
if (window.addEventListener) { | |
window.addEventListener('load', InitiateSpeedDetection, false); | |
} else if (window.attachEvent) { | |
window.attachEvent('onload', InitiateSpeedDetection); | |
} | |
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; | |
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" | |
]); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment