Skip to content

async-load-fn PARALLEL loading #897

@awb99

Description

@awb99

Is your feature request related to a problem? Please describe.

I am extensively using the async-load-fn in the browser. It works pretty much perfect! When the webserver
that provides sends either modules or sci source code to the browser is in a local network, this process
is fast and works perfectly. However, when the server is far away, then there is a significant wait time.
This wait time is basically the roundtrip-time to the server multiplied by the number of namespaces that
are async loaded. This is because sci loads the libspecs one by one.
When there are say 20 namespaces that are required that need to be loaded via the async-load-fn then
when the server is far away, there are 20* 200ms load-time = 4 seconds.

Describe the solution you'd like
Sci sends out all the async-load-fn requests at the same time, and then just starts compilation once all
promises have been fulfilled.

Describe alternatives you've considered
My app uses multiple modules; this modules are finetuned, so only large modules (>100kB) get moved into their
own modules; smaller modules I moved to the main bundle. Where the roundtrip-time accumulation time is high, is
when the web app uses a lot of sci namespaces that are all very small, and the only reason to have multiple
namespaces is for a clearer code organization. I am considering bundling multiple sci namespaces to bundles of
namespaces, so that the async-load-fn does not trigger a fetch request that gets sent to the server that often.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions