- From: Ian Hickson <ian@hixie.ch>
- Date: Fri, 10 Jul 2009 05:13:22 +0000 (UTC)
- To: Jonas Sicking <jonas@sicking.cc>
- Cc: Travis Leithead <Travis.Leithead@microsoft.com>, "public-html@w3.org" <public-html@w3.org>, Harley Rosnow <Harley.Rosnow@microsoft.com>, Kirk Sykora <ksykora@microsoft.com>
On Thu, 11 Jun 2009, Jonas Sicking wrote: > > So implementation wise the implementation will have to set some special > flag on the script element to tell it not to execute when it otherwise > normally would. Implementations already have at least one flag for <script> that's similar to this ("has already executed"), so that seems likely to be pretty lightweight, as I understand it. > The implementation works something like this: > > scriptElement::onTextContentChange() > { > maybeEvalScript(); > } > > scriptElement::onDocumentChange() > { > maybeEvalScript(); > } > > scriptElement::onAttrChange() > { > maybeEvalScript(); > } > > scriptElement::maybeEvalScript() > { > if (!didEvaluate && !wasCreatedByParser && isInDocument() && > (getTextContent() != "" || hasSrcAttribute)) { > didEvaluate = true; > <evaluate script>; > } > } > > Once the parser is done creating the script, it'll call some function > on the script to tell it to go. If this function simply unsets the > wasCreatedByParser flag and calls maybeEvalScript, or if that function > evaluates the script directly, doesn't really make a difference from > an implementation complexity view. > > So we'd never need to not insert the script into the DOM (that would > be more complex all around I'd think). > > The difference implementation wise is very small, simply choosing > which one of two functions to call. > > As stated before, I don't have a strong preference either way. It seems > like good consistency arguments can be made either way, and > implementation wise both solutions are equally simple to implement. I'm not sure I understand exactly what the two proposals you're referring to are, but if the spec as is is ok, then let's stick with that. :-) -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Friday, 10 July 2009 05:14:02 UTC