W3C home > Mailing lists > Public > whatwg@whatwg.org > February 2011

[whatwg] Proposal for separating script downloads and execution

From: Will Alexander <serverherder+whatwg@gmail.com>
Date: Tue, 22 Feb 2011 13:25:42 -0500
Message-ID: <AANLkTikZeaTn5sDPHUmhWt-gNX8WQcKnyaMWZv1upRP2@mail.gmail.com>
> On Thu, 2011-02-17 at 15:24 -0500, Boris Zbarsky wrote:
> 1) ?If your script is no-cache, or max-age:0, does IE make a new
> ? ?request for it for every <script> element?

For the most part this seems to be the case but there are two exceptions:
  a) Before a URL loads, if it's assigned to another script, only one
request is made.
  b) IE seems to always cache when  the Back button is used.

Right: http://digital-fulcrum.com/webperf/readystate-caching/load-then-exec/
Wrong: http://digital-fulcrum.com/webperf/readystate-caching/batch-load-then-exec/

> 2) ?If you create a bunch of <script> elements and set src on them all
> ? ?and the script returned is different on every GET, and then you run
> ? ?them, do you see all the different scripts running?

Yes, except for the two cases mentioned above.

> 3) ?If you do that experiment with 1,000 scripts all of which return
> ? ?the same 50KB of data and none of which you insert, do you see
> ? ?memory usage go up by 50MB? ?Does this depend on whether the
> ? ?requests can be satisfied from cache or not?

It seems memory usage climbs with the number of
loaded-but-not-executed scripts, regardless of the caching state of
the URL, and declines as they are attached.

IE < 9 may mitigate this to some degree by enforcing its standard
garbage collection rules. If only circular references to the script
element exist, IE will abort the network request and never fire the
readystatechange event.

   var s= create('script');
   s.src= ....
   s.onreadystatechange= function(){addToDom(this);};


Received on Tuesday, 22 February 2011 10:25:42 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:31 UTC