Created
July 18, 2013 00:46
-
-
Save rictorres/6025860 to your computer and use it in GitHub Desktop.
detect user bandwidth!
This file contains 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
var imageAddr = "http://www.tranquilmusic.ca/images/cats/Cat2.JPG" + "?n=" + Math.random(); | |
var startTime, endTime; | |
var downloadSize = 5616998; | |
var download = new Image(); | |
download.onload = function () { | |
endTime = (new Date()).getTime(); | |
showResults(); | |
} | |
startTime = (new Date()).getTime(); | |
download.src = imageAddr; | |
function showResults() { | |
var duration = (endTime - startTime) / 1000; //Math.round() | |
var bitsLoaded = downloadSize * 8; | |
var speedBps = (bitsLoaded / duration).toFixed(2); | |
var speedKbps = (speedBps / 1024).toFixed(2); | |
var speedMbps = (speedKbps / 1024).toFixed(2); | |
alert("Your connection speed is: \n" + | |
speedBps + " bps\n" + | |
speedKbps + " kbps\n" + | |
speedMbps + " Mbps\n" ); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It's possible to some extent but won't be really accurate, the idea is load image with a known file size then in its onload event measure how much time passed until that event was triggered, and divide this time in the image file size.
Quick comparison with "real" speed test service showed small difference of 0.12 Mbps when using big picture.
http://stackoverflow.com/questions/5529718/how-to-detect-internet-speed-in-javascript