Worker Helper Function
by bmknight
HTML
<script type="text/worker" id="myworker">
self.addEventListener('message', function(e) {
self.postMessage(e.data + " I'm a worker!!");
}, false);
</script>
JavaScript
//Worker helper function provided by Brian Grinstead
//This helper function is used to allow the loading of a web worker without the
//need for an external javascript file
var WorkerHelper = (function() {
var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
var URL = window.URL || window.webkitURL;
function getURL (script) {
if (window.Worker && BlobBuilder && URL) {
var bb = new BlobBuilder();
bb.append(script);
return URL.createObjectURL(bb.getBlob());
}
return null;
};
function getWorker (script, onmessage) {
var url = getURL(script);
if (url) {
var worker = new Worker(url);
worker.onmessage = onmessage;
return worker;
}
return null;
};
return {
getURL: getURL,
getWorker: getWorker
}
})();
var myWorker = WorkerHelper.getWorker(
document.getElementById('myworker').textContent,
function(e) {
alert(e.data);
}
);
myWorker.postMessage("Yo Yo Yo");