This runs on the main thread, so you don't get any of the multithreading benefits of WebWorkers. However, it should be "good enough" for the less-compliant browsers.
The bundle size is very small: 1kB after uglify+gzip!
npm install pseudo-worker
var PseudoWorker = ;var worker = 'script.js';
Or as a polyfill:
;// now window.Worker is polyfilled in older browsers
Instead of Browserify/Webpack, you can also use it directly as a script tag:
Then it's available as
window.PseudoWorker. Or for the polyfill:
Note: inside the worker, you must use the
self variable instead
of the implicit global object. I.e. do this:
selfonmessage = ...
onmessage = ...
The full list of browsers that are tested in CI are in .zuul.yml. But basically:
- Safari 7+
- IE 8+
- iOS 7.0+
- Android 4.0+
Node.js is not supported. Check out node-webworker instead.
Testing the library
Then to test in Node (using an XHR shim):
Or to test manually in your browser of choice:
npm run test-local
Or to test in a browser using SauceLabs:
npm run test-browser
Or to test with coverage reports:
npm run coverage