This documentation is currently being moved to our new documentation site.
Please view or edit the documentation there, instead.
If you're looking for Fluid Project coordination, design, communication, etc, try the Fluid Project Wiki.
fluid.fetchResources
fluid.fetchResources()
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
Parameters
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
none |
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:
Field |
Purpose |
---|---|
href |
A full resolvable URL holding a template or template fragment. This will be fetched via AJAX and used to populate the |
nodeId |
The id of a node within the current document holding a template, for which |
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:
Field |
Purpose |
---|---|
baseURL |
Computed from href, in order to rebase local URLs in the template. |
resourceText |
The full text of the template fragment, as a string |
fetchError |
Filled in if the AJAX request to fetch the resource failed. It will be populated with a structure |
queued |
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
.
Callback
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.
Options
The following options to the function can be used to customize the behaviour of fluid.fetchResources
:
Name |
Description |
Values |
Default |
---|---|---|---|
|
|
|
|
Example
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 $(".bodyNode").html(returnedResourceSpecs.bodyTemplate.resourceText); $(".sidebarNode").html(returnedResourceSpecs.sidebarTemplate.resourceText); }; fluid.fetchResources(myResourceSpecs, myCallback);
Example
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);