JSFiddle - React, Tailwind, and code Playground

by Boban Stojanovski

JavaScript

var arrTimes = [];
var i = 0; // start
var timesToTest = 10;
var BrzinaMs = 200; //ms
var testImage = "https://ceop.apr.gov.rs/eregistrationportal/Content/Images/system-logo.png";  
var dummyImage = new Image();
var isConnectedFast = false;

testLatency(function(avg){
  isConnectedFast = (avg <= BrzinaMs);
  /** output */
  document.body.appendChild(
    document.createTextNode("Време на учитавање лого: " + (avg.toFixed(2)) + "ms - Брз нет? " + (isConnectedFast ? "Да": "Не")));
});

/** test and average time took to download image from server, called recursively timesToTest times */
function testLatency(cb) {
  var tStart = new Date().getTime();
  if (i<timesToTest-1) {
    dummyImage.src = testImage + '?t=' + tStart;
    dummyImage.onload = function() {
      var tEnd = new Date().getTime();
      var tTimeTook = tEnd-tStart;
      arrTimes[i] = tTimeTook;
      testLatency(cb);
      i++;
    };
  } else {
    /** calculate average of array items then callback */
    var sum = arrTimes.reduce(function(a, b) { return a + b; });
    var avg = sum / arrTimes.length;
    cb(avg);
  }
}