Documentation for a historical release of Infusion: 1.4
Please view the Infusion Documentation site for the latest documentation, or the Infusion 1.3. Documentation for the previous release.
If you're looking for Fluid Project coordination, design, communication, etc, try the Fluid Project Wiki.



Accepts a hash of structures with free keys, where each entry has either href or nodeId set - on completion, callback will be called with the populated structure with fetched resource text in the field resourceText for each entry.

fluid.fetchResources(resourceSpecs, callback, options);

File name: FluidRequests.js


resourceSpecs (Object) An object describing the resources to be fetched. The structure of this object is described below.
callback (Function) The function to call once all resources have been loaded.
options (Object) New in v1.3: Options controlling the behaviour of the function.

Return Value


Resource Specification

The first argument to fluid.fetchResources is an object describing the resources to be fetched. The keys in resourceSpecs represent a unique key to represent each resource specification. The resource specifications must have one of the following fields:




A full resolvable URL holding a template or template fragment. This will be fetched via AJAX and used to populate the resourceText entry. NOTE that if this value is provided, the nodeId will be ignored.


The id of a node within the current document holding a template, for which innerHTML is to be treated as a template. NOTE that if href is provided, this value will be ignored.

On conclusion of all of the fetches, the function callback will be called with the now filled-in resourceSpecs structure as argument. The resourceSpecs structure will have the following fields added to it:




Computed from href, in order to rebase local URLs in the template.


The full text of the template fragment, as a string


Filled in if the AJAX request to fetch the resource failed. It will be populated with a structure status: response status, textStatus: textual version of status, and errorThrown: holding details of an exception.


A reserved flag by the system to track the progress of AJAX calls.

The filled-in resourceSpecs structure is suitable for passing directly as the argument to the low-level function fluid.parseTemplates.


The argument passed to fluid.fetchResources as the callback should be a function that accepts a single parameter: the filled-in resourceSpecs object. The fields of this object are as described in the previous section.


The following options to the function can be used to customize the behaviour of fluid.fetchResources:










var myResourceSpecs = {
    bodyTemplate: {
        href: "templates/Body.html"
    sidebarTemplate: {
        href: "templates/Sidebar.html"
var myCallback = function (returnedResourceSpecs) {
    // very simple: inject the fetched HTML into the DOM
fluid.fetchResources(myResourceSpecs, myCallback);


var myResourceSpecs = {
    template1: {
        href: "html/template1.html"
    template2: {
        href: "html/template1.html"
    data: {
        href: "data/clientData.json"
var myCallback = function (returnedResourceSpecs) {
    for (var key in returnedResourceSpecs) {
        // check for errors before proceeding
        if (returnedResourceSpecs[key].fetchError) {
            // log the failed fetch
            fluid.log("Error loading resource " + returnedResourceSpecs[key].href);
            fluid.log("status: " + returnedResourceSpecs[key].fetchError.status +
                    ", textStatus: " + returnedResourceSpecs[key].fetchError.textStatus +
                    ", errorThrown: " + returnedResourceSpecs[key].fetchError.errorThrown);
        } else {
            // process successfully loaded resource
fluid.fetchResources(myResourceSpecs, myCallback);