What are the use-cases for Web Workers?

Sergey Ilinsky picture Sergey Ilinsky · May 5, 2010 · Viewed 40.9k times · Source

I am looking for real-world scenarious for using Web Workers API.

Answer

DVK picture DVK · May 5, 2010
  • John Resig (of jQuery fame) has a bunch of interesting examples of using web workers here - games, graphics, crypto.

  • Another use is Web I/O - in other words, polling URLs in background. That way you don't block the UI waiting for polling results.

  • Another practical use: in Bespin, they’re using Web Workers to do the syntax highlighting, which you wouldn’t want to block your code editing whilst you’re using the app.

  • From Mozilla: One way workers are useful is to allow your code to perform processor-intensive calculations without blocking the user interface thread.

    As a practical example, think of an app which has a large table of #s (this is real world, BTW - taken from an app I programmed ~2 years ago). You can change one # in a table via input field and a bunch of other numbers in different columns get re-computed in a fairly intensive process.

    The old workflow was: Change the #. Go get coffee while JavaScript crunches through changes to other numbers and the web page is unresponsive for 3 minutes - after I optimized it to hell and back. Get Back with coffee. Change a second #. Repeat many times. Click SAVE button.

    The new workflow with the workers could be: Change the #. Get a status message that something is being recomputed but you can change other #s. Change more #s. When done changing, wait till status changes to "all calculations complete, you can now review the final #s and save".