Skip to end of banner
Go to start of banner

Future macro

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »


Available in Cache for Confluence 6.0 and higher.

The future macro improves page display performance by rendering the body contents in the background while allowing the rest of the page to be displayed. It should be used around sections of a page that take a long time to display because they access external data, run reports or scripts, or gather and summarize metadata. A manual mode is also available that defers the rendering of the section until specifically requested by the user. The future macro shipped in the Cache for Confluence is compatible with the original macro and will be migrated to a native Confluence macro.

The future macro can be a handy way to avoid Confluence's default rendering timeout (normally 120 seconds) for request that are known to be long running any may sometimes exceed the limit. In these cases, it is best to also use with the Cache Macro to minimize the need for the extra processing.

May not work with other macros

History

Originally an Atlassian ShipIt project, it was not maintained and eventually fell behind the times with Confluence 4. It has been spiffed up, fixed up, enhanced, and included with the Cache Plugin.

Here is a quote from Chrisopher Owen, the original author:

For Atlassian’s 7th ShipIt Day I implemented a Confluence macro that would defer rendering its body until the full page was received by the client. The body of the macro would then be sent back to Confluence for rendering via AJAX while the user was presented with a loading placeholder. As the rendering of the body occurs in the future with respect to the original page rendering pipeline, I called this functionality the Future Macro. It is ideally suited for rendering content that is retrieved from external sources where high latency can hold up the delivery of other content on the page.

Parameters

ParameterDefaultMacro BrowserDescription
titleblankTitleText displayed before rendering completes. Also will appear on the manual button. Helps user understand what information is going to appear.
manualfalseManualWhen specified, the section will only be rendered after the user presses the load button. The rendering proceeds in the background until available.
timeout120 secondsMaximum number of seconds to render sectionTimeout in seconds before the section rendering is abandoned. Once abandoned, a timeout error message will be displayed.

 

 

 Default loading message

Manual load

 

Examples

Video

SQL Example

{future}
{sql:dataSource=exampleDS}
select * from products
{sql}
{future}

 

 

 

  • No labels