>> So, if that's how we think this would work, we need to understand how the
>> `execScript(..)` logic is going to be treated. Is creating a <script>
>> element dynamically and inserting it going to make sure that it either:
>> 
>>  a. executes sync
>>  b. executes async, but "a.js" will *definitely* execute before "b.js",
>> which will *definitely* execute before "c.js".
>> 
> 
> I'm hoping "a", but you tell me. Do you know what browsers do with a fully
> cached script? Is there consistency there? If not, yeah, you'll have to
> create a chain.

Regardless of (a) or (b), the simpler Promise approach (my first snippet) is 
sufficient, if and only if a->b->c is the  *guaranteed* execution order. That's 
the important part. If there's a chance the browser might do b->a->c (even if 
all were equally "ready" in the cache), then the pattern goes fubar and the 
uglier second syntax is required.

I'd say the first syntax is a bit verbose for what I was dreaming 4 years ago 
when I started asking for a simple script preloading mechanism, but it's just 
this side of acceptable. If we have to take the second approach, I say that's 
unacceptably more verbose/complex and falls short of my opinion of "everything 
we need for sane & versitile dependency loading".



>> Do you know what browsers do with a fully cached script?
> 
> "<script src=url>" is always executed async when inserted into the DOM, 
> cached or not.

Boris-

As I noted above, what we need to know (and I guess we need to know this from 
all browsers) if there's a *guarantee* of a->b->c execution order (even if all 
3 are executing async) when they are added to the DOM in that order and all 3 
are guaranteed preloaded first, by the <link rel=preload> tag usage? Is there 
ever a case where some other execution order than a->b->c would happen?




--Kyle





Reply via email to