Implement "wave of explosions", eagerly instantiating all component shells before their contents

Description

Building on the ginger world work, and preparatory to the "wave of promises" asynchronous ginger world, we can offer a significant improvement in regularity to the users of IoC by eagerly instantiating "component shells" and any type founts preferentially to evaluating any other contents of their options in the ginger process. This will allow reliable type-based access to components without requiring a dependence on instantiation order or reliance on hard-coded paths. For example, in this situation in the Uploader, the base component

We would like to write the injection of the fileQueue as

but instead must write it as:

This is because despite being a more deeply nested subcomponent of the base, we can't guarantee that the framework has not chosen an instantiation order which recurses more deeply on html5Strategy and has not yet seen the typename of the queue as "fluid.uploader.fileQueue" as the member at path "queue". The former form is preferable since it imposes less tight binding on the exact location of the fileQueue.

In the "wave of explosions" a wave of instantiations will spread eagerly from the root, in breadth-first order, with the usual priority given to type founts, and ensure that in virtually all cases by the time the body of any component options are expanding, the "type skeleton" of the entire component tree will be available (barring any components whose types depend on some portion of their options body material)

Environment

None

Activity

Show:

Antranig Basman January 30, 2015 at 3:04 PM

A further requirement - we should try to eliminate the cumbersome piece of memory-ware "fluid.typeFount" and have the framework eagerly evaluate the shells of any components which appear to have the FORM of dynamic grades first amongst a set of siblings - since these are more likely to encode type decisions that might be consumed by other components.

Fixed

Details

Assignee

Reporter

Components

Fix versions

Priority

Created February 24, 2013 at 8:22 AM
Updated July 22, 2024 at 2:35 PM
Resolved February 3, 2022 at 4:31 PM