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);
}