On 7/30/10 4:33 AM, zhao Matt wrote:
Obviously, the book thinks Client-side JavaScript is (or behaves as if
it is) *single-threaded*.
However,
HTML5 spec states 'the user agent must immediately execute the script
block, even if other scripts are *already* executing.',
Does it imply that scripts can be run in parallel?

This seems to be a common misconception.

Being single-threaded doesn't mean things can't be _reentrant_. So if you have a script running and that script inserts a <script> node with a textnode child into the document, the script contained in that textnode will be executed immediately even though there is already a script running. This will happen before control returns to the original script from the appendChild call.

Whether this setup maps to "run in parallel" in your head, I don't know.

"Running a script: When a script element is to be run, the user agent
must act as follows:..."
The process includes 9 steps, but I don't sure which step will take the
attribute 'async' into consideration.

Um... Step 9, which is the only one that mentions it, no?

Having an "async" attribute prevents a script from taking the first two options in that step.

-Boris

Reply via email to