Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Determine client's connection speed with JavaScript
// 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!"GET", "URL/TO/PROBE.FILE", true);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.