JSFiddle - React, Tailwind, and code Playground

by BDG

HTML

<pre class="log"></pre>

JavaScript

var logLine = function(comment, element) {
    this.count = this.count + 1 || 0;
    comment = comment || "undescribed event";
    $("pre.log").append(this.count + " - " +comment + "\n");
}
        
var incScript = {
    list : [],//List of scripts
    load : function(scriptList, callback) { //Load array of scripts, with callbackoption
        var params = {}
        callback = callback || (function(){});
        var incThis = this;
        try {
            //Check if this script is already loaded
            for (i in incThis.list) {
                if (incThis.list[i] === scriptList[0]){
                    scriptList.shift();    //Remove it from loading queue
                }
            }
            if (scriptList.length === 0) {
                callback(params);
                return ;
            } else {
                logLine("\tScript loaded: "+ scriptList[0]);
                incThis.list.push(scriptList[0]);
                scriptList.shift();
                incThis.load(scriptList, callback);
                return ;
                /*
                //jQuery dependant code that replaces above (actually loads scripts)
                $.getScript(scriptList[0], function() {
                    incThis.list.push(scriptList[0]);
                    scriptList.shift();
                    incThis.load(scriptList, callback);
                    return ;
                });
                */
            }
        } catch(e) {
            logLine("There was an error loading this page." + e);
            return false;
        }
    }
};

logLine("Loading group A");
logLine("Already Loaded: " + incScript.list.join(", "))
incScript.load(["One.js","Two.js"]);
logLine("-------------");

logLine("Loading group B");
logLine("Already Loaded: " + incScript.list.join(", "))
incScript.load(["One.js"]);
logLine("-------------");

logLine("Loading group C");
logLine("Already Loaded: " + incScript.list.join(", "))
incScript.load(["Three.js"],...