[html5] r3457 - [giow] (2) Make DOMContentLoaded wait until after scripts have run.
whatwg at whatwg.org
whatwg at whatwg.org
Mon Jul 20 19:25:06 PDT 2009
Author: ianh
Date: 2009-07-20 19:25:04 -0700 (Mon, 20 Jul 2009)
New Revision: 3457
Modified:
index
source
Log:
[giow] (2) Make DOMContentLoaded wait until after scripts have run.
Modified: index
===================================================================
--- index 2009-07-21 01:39:47 UTC (rev 3456)
+++ index 2009-07-21 02:25:04 UTC (rev 3457)
@@ -64887,13 +64887,21 @@
the document, the user agent must follow the steps in this
section.</p>
- <p>First, the <a href=#current-document-readiness>current document readiness</a> must be set to
- "interactive".</p>
+ <!-- this happens as part of one of the tasks that runs the parser -->
- <p>Then, the rules for <a href=#when-a-script-completes-loading>when a script completes loading</a>
- start applying (script execution is no longer managed by the
- parser).</p>
+ <p>First, the user agent must set the <a href=#current-document-readiness>current document
+ readiness</a> to "interactive".</p>
+ <p>Then, the user agent must then make a list of all the scripts
+ that are in the <a href=#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing>list of scripts that will execute when the
+ document has finished parsing</a>, the <a href=#list-of-scripts-that-will-execute-asynchronously>list of scripts that
+ will execute asynchronously</a>, and the <a href=#list-of-scripts-that-will-execute-as-soon-as-possible>list of scripts
+ that will execute as soon as possible</a>. This is the <dfn id=list-of-scripts-pending-after-the-parser-stopped>list
+ of scripts pending after the parser stopped</dfn>.</p>
+
+ <p>The rules for <a href=#when-a-script-completes-loading>when a script completes loading</a> start
+ applying (script execution is no longer managed by the parser).</p>
+
<p>If any of the scripts in the <a href=#list-of-scripts-that-will-execute-as-soon-as-possible>list of scripts that will
execute as soon as possible</a> have <a href=#completed-loading>completed
loading</a>, or if the <a href=#list-of-scripts-that-will-execute-asynchronously>list of scripts that will execute
@@ -64902,19 +64910,23 @@
if those scripts just completed loading, following the rules given
for that in the <code><a href=#script>script</a></code> element definition.</p>
- <p>Then, if the <a href=#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing>list of scripts that will execute when the
- document has finished parsing</a> is not empty, and the first
- item in this list has already <a href=#completed-loading>completed loading</a>, then
- the user agent must act as if that script just finished loading.</p>
+ <p>If the <a href=#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing>list of scripts that will execute when the document
+ has finished parsing</a> is not empty, and the first item in this
+ list has already <a href=#completed-loading>completed loading</a>, then the user agent
+ must act as if that script just finished loading.</p>
- <p>By this point, there will be no scripts that have loaded but have
- not yet been executed.</p>
+ <p class=note>By this point, there will be no scripts that have
+ loaded but have not yet been executed.</p>
- <p>The user agent must then <a href=#fire-a-simple-event>fire a simple event</a> called
- <code title=event-DOMContentLoaded>DOMContentLoaded</code> at the
- <code>Document</code>.</p>
+ <hr><!-- async --><p>Once all the scripts on the <a href=#list-of-scripts-pending-after-the-parser-stopped>list of scripts pending after
+ the parser stopped</a> have <a href=#completed-loading>completed loading</a> and
+ been <a href=#executing-a-script-block title="executing a script block">executed</a>, the
+ user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> called <code title=event-DOMContentLoaded>DOMContentLoaded</code> at the
+ <code>Document</code>. (If the list is empty, this happens
+ immediately.)</p>
- <p>Once everything that <dfn id=delay-the-load-event title="delay the load event">delays the
+ <hr><!-- async --><p>Once everything that <dfn id=delay-the-load-event title="delay the load event">delays the
load event</dfn> of the document has completed, the user agent must
run the following steps:</p>
Modified: source
===================================================================
--- source 2009-07-21 01:39:47 UTC (rev 3456)
+++ source 2009-07-21 02:25:04 UTC (rev 3457)
@@ -79242,13 +79242,21 @@
the document, the user agent must follow the steps in this
section.</p>
- <p>First, the <span>current document readiness</span> must be set to
- "interactive".</p>
+ <!-- this happens as part of one of the tasks that runs the parser -->
- <p>Then, the rules for <span>when a script completes loading</span>
- start applying (script execution is no longer managed by the
- parser).</p>
+ <p>First, the user agent must set the <span>current document
+ readiness</span> to "interactive".</p>
+ <p>Then, the user agent must then make a list of all the scripts
+ that are in the <span>list of scripts that will execute when the
+ document has finished parsing</span>, the <span>list of scripts that
+ will execute asynchronously</span>, and the <span>list of scripts
+ that will execute as soon as possible</span>. This is the <dfn>list
+ of scripts pending after the parser stopped</dfn>.</p>
+
+ <p>The rules for <span>when a script completes loading</span> start
+ applying (script execution is no longer managed by the parser).</p>
+
<p>If any of the scripts in the <span>list of scripts that will
execute as soon as possible</span> have <span>completed
loading</span>, or if the <span>list of scripts that will execute
@@ -79257,18 +79265,31 @@
if those scripts just completed loading, following the rules given
for that in the <code>script</code> element definition.</p>
- <p>Then, if the <span>list of scripts that will execute when the
- document has finished parsing</span> is not empty, and the first
- item in this list has already <span>completed loading</span>, then
- the user agent must act as if that script just finished loading.</p>
+ <p>If the <span>list of scripts that will execute when the document
+ has finished parsing</span> is not empty, and the first item in this
+ list has already <span>completed loading</span>, then the user agent
+ must act as if that script just finished loading.</p>
- <p>By this point, there will be no scripts that have loaded but have
- not yet been executed.</p>
+ <p class="note">By this point, there will be no scripts that have
+ loaded but have not yet been executed.</p>
- <p>The user agent must then <span>fire a simple event</span> called
- <code title="event-DOMContentLoaded">DOMContentLoaded</code> at the
- <code>Document</code>.</p>
+ <hr>
+ <!-- async -->
+
+ <p>Once all the scripts on the <span>list of scripts pending after
+ the parser stopped</span> have <span>completed loading</span> and
+ been <span title="executing a script block">executed</span>, the
+ user agent must <span>queue a task</span> to <span>fire a simple
+ event</span> called <code
+ title="event-DOMContentLoaded">DOMContentLoaded</code> at the
+ <code>Document</code>. (If the list is empty, this happens
+ immediately.)</p>
+
+ <hr>
+
+ <!-- async -->
+
<p>Once everything that <dfn title="delay the load event">delays the
load event</dfn> of the document has completed, the user agent must
run the following steps:</p>
More information about the Commit-Watchers
mailing list