Skip to content

Instantly share code, notes, and snippets.

@potch
Created November 18, 2013 21:11
Show Gist options
  • Select an option

  • Save potch/7535370 to your computer and use it in GitHub Desktop.

Select an option

Save potch/7535370 to your computer and use it in GitHub Desktop.
inline Web Workers
function WebWorker (fn) {
var src = '(' + fn.toString() + ')();';
var blob = new Blob([src], { "type" : "text/javascript" });
var url = URL.createObjectURL(blob);
return new Worker(url);
}
var get = WebWorker(function() {
onmessage = function (e) {
var url = e.data;
var oReq = new XMLHttpRequest();
function reqListener () {
postMessage(this.responseText);
};
oReq.onload = reqListener;
oReq.open("get", url, true);
oReq.send();
}
});
get.postMessage("http://jsbin.com/");
get.onmessage = function (e) {
console.log(e.data);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment