JSFiddle - React, Tailwind, and code Playground

by XiozZe

HTML

<p id=hello></p>

JavaScript

function doStuff(i, moreWork){
    console.log("doStuff "+i);
    var max = 20000*Math.random() + (200000+100000*Math.random())*moreWork;
    var time = new Date().getTime();
    for(var j = 0; j < max; j++){
        $("#hello").text();
    }
    doStuffTime += new Date().getTime() - time;
    console.log("doStuff "+i+" done")
}

function ajaxCall(i){
    if(i === 40){
        console.log("doStuffTime: "+doStuffTime);
        console.log("ajaxCallTime: "+ajaxCallTime);
        console.log("totalTime: "+(new Date().getTime() - startTime));
        return false;
    } 
    
    console.log("ajaxCall done!");
    var wait = Math.round(Math.random() * 300);
    ajaxCallTime += wait;   
    
    if(i < 10){
        //The first few calls cause a lot of work
        doStuff(i, 1);        
    }
    else{
        //The others are much faster done
        doStuff(i, 0);
    }           
    
    setTimeout(function(){
      ajaxCall(++i);
    }, wait); 
    
}

var doStuffTime = 0;
var ajaxCallTime = 0;
var startTime = new Date().getTime();
ajaxCall(0);