- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Fri, 30 Jul 2010 10:46:11 -0400
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
Received on Friday, 30 July 2010 07:46:11 UTC