On 28 September 2014 07:01, John Lenz <concavel...@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 <johnjbar...@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 < >> ikokos...@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 <gunder...@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 <johnjbar...@google.com> >>>> wrote: >>>> >>>>> no. >>>>> >>>>> On Fri, Sep 26, 2014 at 8:12 AM, Konstantin Ikonnikov < >>>>> ikokos...@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@mozilla.org >>>>>> https://mail.mozilla.org/listinfo/es-discuss >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> es-discuss mailing list >>>>> es-discuss@mozilla.org >>>>> https://mail.mozilla.org/listinfo/es-discuss >>>>> >>>>> >>>> >>> >>> _______________________________________________ >>> es-discuss mailing list >>> es-discuss@mozilla.org >>> https://mail.mozilla.org/listinfo/es-discuss >>> >>> >> >> _______________________________________________ >> es-discuss mailing list >> es-discuss@mozilla.org >> https://mail.mozilla.org/listinfo/es-discuss >> >> > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss