-
-
Save VinayaSathyanarayana/f9878099270ad72975309632331fd500 to your computer and use it in GitHub Desktop.
Determine client's connection speed with JavaScript
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
// Let's initialize the primitives | |
var startTime, endTime, fileSize; | |
// Set up the AJAX to perform | |
var xhr = new XMLHttpRequest(); | |
// Rig the call-back... THE important part | |
xhr.onreadystatechange = function () { | |
// we only need to know when the request has completed | |
if (xhr.readyState === 4 && xhr.status === 200) { | |
// Here we stop the timer & register end time | |
endTime = (new Date()).getTime(); | |
// Also, calculate the file-size which has transferred | |
fileSize = xhr.responseText.length; | |
// Calculate the connection-speed | |
var speed = (fileSize * 8) / ((endTime - startTime)/1000) / 1024; | |
// Report the result, or have fries with it... | |
console.log(speed + " Kbps\n"); | |
} | |
} | |
// Snap back; here's where we start the timer | |
startTime = (new Date()).getTime(); | |
// All set, let's hit it! | |
xhr.open("GET", "URL/TO/PROBE.FILE", true); | |
xhr.send(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment