[whatwg] Proposal: Loading and executing script as quickly as possible using multipart/mixed

Maciej Stachowiak mjs at apple.com
Mon Dec 3 21:57:08 PST 2012

On Dec 3, 2012, at 2:11 PM, William Chan (陈智昌) <willchan at chromium.org> wrote:

> Unless I am misunderstanding, SPDY will not solve this problem. SPDY uses
> prioritized multiplexing of streams.

It seems to me like SPDY could make this case work better:

<script async src="path/to/script-part1.js"></script>
<script async src="path/to/script-part2.js"></script>
<script async src="path/to/script-part3.js"></script>

Specifically the individual script chunks could be ordered and prioritized such that all of script-part1.js transfers before any of script-part3.js. That's harder to do with HTTP because the scripts could be loading on wholly separate HTTP connections, while SPDY will use one connection to the server.

That being said, I do not know if SPDY will actually achieve this. Presumably it makes sense for it to serialize within a given priority level, at least a priority level that's likely to correspond to resources that are only atomically consumable, like scripts. But I don't know if SPDY implementations really do that.

 - Maciej

> Generally speaking, a browser will map
> a single resource request to a single stream, which would prevent chunked
> processing by the browser without multipart/mixed. One could imagine
> working around this by splitting the single resource into multiple
> resources, and then relying on SPDY priorities to ensure sequential
> delivery, but that is suboptimal due to having limited priority levels (4
> in SPDY/2, 8 in SPDY/3), and many of them are already used to indicate
> relative priority amongst resource types (
> https://code.google.com/p/chromium/source/search?q=DetermineRequestPriority&origq=DetermineRequestPriority&btnG=Search+Trunk
> ).
> On Mon, Dec 3, 2012 at 1:40 PM, Anne van Kesteren <annevk at annevk.nl> wrote:
>> On Mon, Dec 3, 2012 at 10:14 PM, Adam Barth <w3c at adambarth.com> wrote:
>>> The HTTP server would then break script.js into chunks that are safe
>>> to execute sequentially and provide each chunk as a separate MIME part
>>> in a multipart/mixed response.
>> Is it expected that SPDY will take much longer than getting this
>> supported in all browsers? Or am I missing how SPDY will not address
>> this problem?
>> --
>> http://annevankesteren.nl/

More information about the whatwg mailing list