HTML and CSS Reference
In-Depth Information
The first call to
importScripts()
imports the
Helper1.js
file. The second call imports three files:
Helper1.js
,
Helper2.js
, and
Helper3.js
. The scripts in the second call are executed in the order specified.
Handling Errors
Typically, web workers involve lengthy processing, and at times they may encounter unexpected errors.
Because web workers don't have access to DOM, they can't report the errors by displaying dialog boxes or
alerts. Any unhandled errors in the worker thread raise error event. The web page can wire an event
handler to the
error
event of the web worker object and be notified when there is any error. Listing 10-4
shows how this is done.
Listing 10-4.
Handling Errors
$("#btnStart").click(function () {
worker = new Worker("scripts/Processing.js");
worker.addEventListener("message", ReceiveMessageFromWorker, false);
worker.addEventListener(“error”, HandleError, false);
worker.postMessage("Hello Worker!");
});
function HandleError(evt) {
var msg="There was an error in the worker thread!\r\n";
msg += "Message : " + evt.message + "\r\n";
msg += "Source : " + evt.filename + "\r\n";
msg += "Line No. : " + evt.lineno;
alert(msg);
}
Notice the line of code shown in bold. The
addEventListener()
method attaches an event-handler
function
HandleError()
to the
error
event. The
HandleError()
function receives an
ErrorEvent
object. The
three properties of the
ErrorEvent
—
message
,
filename,
, and
lineno
—give you the error message, the file
name in which error occurred, and the line number at which the error occurred. Figure 10-4 shows a
sample run of the
HandleError()
event-handler function.
Figure 10-4.
Error details being displayed by handling the
error
event
The alert box shows the error message “Uncaught Unexpected Error !!!”. It also tells the user that the
source of the error is
Processing.js
and that there is problem at line 6.