W3C home > Mailing lists > Public > public-html@w3.org > October 2010

Re: Executing script-inserted external scripts in insertion order

From: Jonas Sicking <jonas@sicking.cc>
Date: Wed, 13 Oct 2010 10:45:57 -0700
Message-ID: <AANLkTikuS8pthUOYiZbdf1H4oUpYtk6=3mDvMH8TjVoq@mail.gmail.com>
To: Adam Barth <w3c@adambarth.com>
Cc: Henri Sivonen <hsivonen@iki.fi>, Getify <getify@gmail.com>, public html <public-html@w3.org>, Tony Gentilcore <tonyg@chromium.org>
On Wed, Oct 13, 2010 at 9:53 AM, Adam Barth <w3c@adambarth.com> wrote:
> On Wed, Oct 13, 2010 at 1:40 AM, Henri Sivonen <hsivonen@iki.fi> wrote:
>> It would be great if IE or WebKit developers commented on whether this carrot will work. Because if they really consider the carrot compelling, we can standardize that script-inserted async=false external scripts execute in insertion order (relative to themselves only--not relative to script-inserted inline scripts or parser-inserted scripts).
>
> Yeah, I don't know.  I don't mean to be negative, it just seems like a
> really obscure feature.  It's tough enough to educate people to use
> async or defer (and to get them to understand the difference!), and
> those have massive performance benefits.
>
> I've added tonyg to this thread.  He's been most closely involved with
> asynchronous script execution in WebKit.  He might have more insight.

I think from a user education point of view, I would actually argue
that keeping scripts ordered is a better solution. Any time you use
async script you are exposing yourself to race conditions. If scripts
load with a different speed at a users computer than at yours, then
you are running the risk that scripts are running in a different order
than what you have tested with. This could easily happen if all the
scripts have been cached in your browser, but won't be for a user that
visits for the first time.

So any time async scripts are used, that needs a significant amount of
understanding and care by the developer. This includes if the script
is async because it was inserted using the DOM.

So I'd rather that a user that doesn't understand what async and defer
is *don't* use them, and that they in that case get ordered, non-racy,
behavior.

/ Jonas
Received on Wednesday, 13 October 2010 17:47:00 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 9 May 2012 00:17:15 GMT