Chapter 6. Debug Your Workers
Because Web Workers JavaScript files aren’t part of the files you will find in Firefox’s firebug or in Safari’s web inspector, it will be difficult to debug them. These script files aren’t part of the current page scope, and the browser won’t show them to us. Luckily, in Chrome (15+) we have a great option to debug Web Workers in the Chrome Dev Tools. We will see how to use this tool later in this chapter.
If you aren’t using Chrome, there is an option to gain information when an error occurs. The
Web Workers specification[9] shows us that an error event (onerror handler)
should be fired when a runtime script error occurs in a Worker. The main properties in the
onerror handler are the following:
messageThe error message itself.
linenoThe number of the line inside our Web Worker that caused the error.
filenameThe name of the file inside the Worker in which the error occurred.
That should be all the information you need to be able to fix your “errors,” right?
You can override the onerror function with a version that
will throw an error with enough information to help us see what’s happening inside the Worker. You
may also add some other parameters that are specific to your case. For example, if your Worker is
handling connections, you can add their data (e.g., number of open connections, number of ideal
connections, etc.) to this error message. This is a simple way to understand where your code is
broken.
var worker = new Worker("worker.js"); worker.onerror ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access