Cache Macro

Cache Macro

This content is archived.

On this page

Caches rendered data to improve page display performance.

Caches the rendered contents of the body of this macro. Very useful when using macros that might be slow to render content, but where it does not really need to be dynamically generated for each and every request. Specifically, this can improve performance for accessing dynamic data from SQLExcel, and similar macros. Cache will be refreshed if the body of the macro changes or if attachments to this page have been added, removed, or have newer versions. The cache applies to all users that view the page. The cached content can optionally be indexed for Confluence search.

User specific content

Do not use the cache macro around content that renders differently for different users. This is especially important for any content that is security sensitive.

Parameters

Parameter

Default

Macro Browser Label

Description

id

automatically generated

Reference id

Defaults to an automatically generated sequence number. The id must be unique on the page. Specifying the id can improve performance during edit by reducing cache refreshes during macro browser refresh, preview, and save cycle. It also helps when re-ordering cache macros on a page. The can be used when doing cache macro specific refreshes - see Cache Refresh below. Since 5.1.0.

refresh

1d

(one day)

Cache refresh period

Cache will be refreshed the next time page is viewed after the refresh period. A unqualified number will be treated as seconds. A number followed by one of the following characters will be treated as follows:

  • s - seconds.

  • m - minutes.

  • h - hours.

  • d- days.

    Any data after a s, m, h, or d is ignored. For example, 10days is the same as 10d or 10 days.

cron

 

Cron expression

Cron-like expression for finer grained cache expiration and refresh. See Cron Expressions. For example: 30 * * * * - cache will expire 30 minutes past each hour of the day. This means the data shown will

checkAttachments

true

Check attachments

If true, the cache will be refreshed if there is any change in the attachments on this page. This includes adding, removing, or changing the version of any attachment. For instance, if you are caching the rendering of the an excel spreadsheet, then the data will be refresh if the attached spreadsheet is updated.

showRefresh

false

Show refresh icon

When shown, the icon can be clicked to cause the immediate refresh of the data.

showDate

false

Show date

Show the date and time of data was last generated. See also dateFormat.

index

false

Index content

Add cached content to the Confluence search index. Whenever the cached data is updated, the page will be re-indexed. This enables external content to be found using Confluence search.

title

Refresh

Title

Title to show when mouse is over the refresh icon.

dateFormat

user date format

Date format

Defaults to the system defined format modified by the users time zone. The refresh date can be have a specific format. Use a simple date format string. Since 6.1.

anchor

 

Anchor

Name of a page anchor used to position after refresh link is pressed. Use @default to have an anchor generated at the macro location. Since 6.7.

retry

Default

Retry feature

Special handling for render errors that can be retried. See Retry Feature for more details. Since 6.8.

Customization

Usage

{cache} Something to cache for a day {cache}
{cache:refresh=30m} This will be cached for 30 minutes {cache}
{cache:refresh=2 hours} The excel data will be cached for 2 hours {excel:file=^Report.xls} {cache}
{cache:cron=30 * * * *|showRefresh=true|title=Refresh data from database} This will be cached until 30 minutes past each hour of the day {sql:dataSource=ReportDS} select * from report {sql} {cache}
{cache:refresh=1d|showRefresh=true|showDate=true} {beanshell} System.out.println("Hello world " + (new Date()) ); {beanshell} {cache}

Advanced Examples

Tips and Techniques

Compatibility With Other Macros

See Interoperability

Cache Refresh

  • To force all cache macros on a page to refresh, use the refresh request attribute with value true

    • Example

      http://localhost/display/DEMO/test?refresh=true
  • To force a specific cache macros on a page to refresh, use refresh request attribute with value equal to the cache macro id. If not specified, it defaults to a sequence number based on position on page

    • Example

      http://localhost/display/DEMO/test?refresh=1 http://localhost/display/DEMO/test?refresh=myId

Need support? Create a request with our support team.

Copyright © 2005 - 2025 Appfire | All rights reserved.