domenic at domenicdenicola.com (2014-09-30T16:52:03.244Z)
On 28 September 2014 07:01, John Lenz <concavelenz at gmail.com> wrote:
> I would like to see some way to preload everything, and be able to
> retrieve them synchronously, something like:
>
> System.loader.addNoAsync('...'); // throw if all imports aren't
> available already
>
> So that the script could be used during initial render. I understand that
> this would mean that the module would need to be parsed and executed
> synchronously. Forcing folks to never use any module for code that needs to
> be inline seems like a bad turn.
>
I'm not sure what rendering behaviour is planned for <script
type="module">, but I hope there would be a way to indicate when it should and shouldn't block rendering of the HTML page / HTML import.
In terms of preloading, there are complete ways to do this through custom
extensions.
On 28 September 2014 07:01, John Lenz <concavelenz at gmail.com> wrote: > I would like to see some way to preload everything, and be able to > retrieve them synchronously, something like: > > System.loader.addNoAsync('...'); // throw if all imports aren't > available already > > So that the script could be used during initial render. I understand that > this would mean that the module would need to be parsed and executed > synchronously. Forcing folks to never use any module for code that needs to > be inline seems like a bad turn. > I'm not sure what rendering behaviour is planned for <script type="module">, but I hope there would be a way to indicate when it should and shouldn't block rendering of the HTML page / HTML import. In terms of preloading, there are complete ways to do this through custom extensions. > > On Fri, Sep 26, 2014 at 1:44 PM, John Barton <johnjbarton at google.com> > wrote: > >> Theoretically you can use System.normalize() and System.get() to lookup a >> module by name synchronously. The normalize feature requires a referrer or >> address. >> >> Since browsers are determined to eliminate synchronous scripts, you may >> as well deal with the asynchronous System.import() and obnoxious promises >> stuff now and save yourself some pain later. >> >> jjb >> >> On Fri, Sep 26, 2014 at 9:40 AM, Konstantin Ikonnikov < >> ikokostya at gmail.com> wrote: >> >>> I don't want load module using http request. In my case module already >>> defined and I want import it later when I get its name: >>> >>> ```js >>> var moduleName = getModuleName(); >>> import { foo } from moduleName; >>> >>> // use foo >>> ``` >>> >>> >>> >>> 2014-09-26 20:00 GMT+04:00 Marius Gundersen <gundersen at gmail.com>: >>> >>>> And the reason you cannot import a module synchronously is that it >>>> would freeze the entire browser until the http request completes, which >>>> could be several seconds on a slow internet connection. >>>> >>>> If you want to import something dynamically you can do it using the API >>>> (to be finalized, I believe): >>>> >>>> ```js >>>> var moduleName = 'foo'; >>>> Loader.import(moduleName).then(function(foo){ >>>> //use foo here >>>> }); >>>> ``` >>>> >>>> Marius Gundersen >>>> >>>> On Fri, Sep 26, 2014 at 5:29 PM, John Barton <johnjbarton at google.com> >>>> wrote: >>>> >>>>> no. >>>>> >>>>> On Fri, Sep 26, 2014 at 8:12 AM, Konstantin Ikonnikov < >>>>> ikokostya at gmail.com> wrote: >>>>> >>>>>> Can I import module dynamically, but synchronously? Example for >>>>>> common js >>>>>> >>>>>> ```js >>>>>> var moduleName = 'foo'; >>>>>> var foo = require(moduleName); >>>>>> ``` >>>>>> >>>>>> In es6 draft I found that ModuleSpecifier must be a StringLiteral >>>>>> http://people.mozilla.org/~jorendorff/es6-draft.html#sec-imports >>>>>> >>>>>> _______________________________________________ >>>>>> es-discuss mailing list >>>>>> es-discuss at mozilla.org >>>>>> https://mail.mozilla.org/listinfo/es-discuss >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> es-discuss mailing list >>>>> es-discuss at mozilla.org >>>>> https://mail.mozilla.org/listinfo/es-discuss >>>>> >>>>> >>>> >>> >>> _______________________________________________ >>> es-discuss mailing list >>> es-discuss at mozilla.org >>> https://mail.mozilla.org/listinfo/es-discuss >>> >>> >> >> _______________________________________________ >> es-discuss mailing list >> es-discuss at mozilla.org >> https://mail.mozilla.org/listinfo/es-discuss >> >> > > _______________________________________________ > es-discuss mailing list > es-discuss at mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20140928/073ae990/attachment-0001.html>