Skip to content

Instantly share code, notes, and snippets.

@jameswomack
Created September 11, 2012 06:41
Show Gist options
  • Star 17 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save jameswomack/3696516 to your computer and use it in GitHub Desktop.
Save jameswomack/3696516 to your computer and use it in GitHub Desktop.
Extend function prototype to run a function as a WebWorker
Function.prototype.runOnBackgroundThread = function (aCallback) {
var _blob = new Blob(['onmessage = '+this.toString()],{"type":"text/javascript"});
var _worker = new Worker((webkitURL.createObjectURL || URL.createObjectURL)(_blob));
_worker.onmessage = aCallback;
_worker.postMessage();
}
var _test = function () {
postMessage((1+1).toString());
}
_test.runOnBackgroundThread(function(e){
alert(e.data);
});
@WebReflection
Copy link

doesn't work on iOS regardless both Worker, Blob, and webkitURL are there :-/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment