JSFiddle - React, Tailwind, and code Playground

by Darby Rathbone

JavaScript

var logger = document.createElement('div');
logger.id = 'log';
document.body.appendChild(logger);
var worker = document.createElement('script');
worker.type = "javascript/worker";
worker.id = 'worker1';
worker.textContent = "    \
        self.onmessage = function(event) {    \
            var jdata = event.data.split(',');    \
            console.log(event);    \
            var dataGCD = [];    \
            jdata.forEach(function(e, i, a) {    \
                dataGCD.push([]);    \
                for (var j = 1; j < e; j++) {    \
                    if (e % j === 0)     \
                        dataGCD[i].push(j);    \
                }    \
                self.postMessage(dataGCD[i].join(','));    \
            });    \
        };    \
                      ";
document.body.appendChild(worker);


var blob = new Blob([document.querySelector('#worker1').textContent]);

var worker = new Worker(window.URL.createObjectURL(blob));
worker.onmessage = function (e) {
    console.log(e);
    log("Received: " + e.data);
};
var dataarray = {data:new Array(),
                 cmd:"parse"};
for (var i = 0; i < 10; i++) {
    dataarray.data.push(i);
}
worker.postMessage(dataarray.data.join(",")); // Start the worker.
function log(msg) {
    // Use a fragment: browser will only render/reflow once.
    var fragment = document.createDocumentFragment();
    fragment.appendChild(document.createTextNode(msg));
    fragment.appendChild(document.createElement('br'));

    document.querySelector("#log").appendChild(fragment);
}