[whatwg] Script preloading, ES6 modules

Kornel Lesiński kornel at geekhood.net
Mon Jul 15 07:55:45 PDT 2013


ES6 modules[1] have a script loader API[2].

That API is pretty powerful to the point it can emulate other script  
loaders, load files that are not ES6 modules, and even load text files  
that aren't JS (intended for compilation of coffeescript-like languages,  
but could be abused for anything):

https://gist.github.com/wycats/51c96e3adcdb3a68cbc3#using-existing-libraries-as-modules


There's a very high overlap between module dependencies and <script  
dependencies> proposal. I think at very least it would be useful to define  
<script dependencies> in terms of ES6 modules, or even abandon markup  
solution to avoid duplicating features.


ES6 modules however do not solve the performance problem. In fact they  
would benefit from UA having a list of all dependencies up front  
(otherwise file's dependencies can only be discovered after that file is  
loaded, which costs as many RTTs as the height of the dependency tree).

So I think that eventually ES6 modules + link[rel=subresource] could be  
the answer. The <link> would expose URLs to (pre)load for performance, but  
modules would handle actual loading/execution for flexibility and  
reliability.

-- 
regards, Kornel

[1] http://wiki.ecmascript.org/doku.php?id=harmony:modules
[2] http://wiki.ecmascript.org/doku.php?id=harmony:module_loaders



More information about the whatwg mailing list