Variable Cache Plugin
This Plugin caches TWiki variables in selected topics for faster page rendering.
Most topics in a typical TWiki installation are rendered within a small deviation in terms of speed. Exceptions are topics that contain a lot of dynamic content. This is mainly caused by CPU or I/O intensive
TWikiVariables, such as
%SEARCH{}% and
%INCLUDE{}%.
This Plugin caches all
%VARIABLES% located in a topic so that the topic can get rendered as quickly as one without variables. An outdated cache gets refreshed when a user is looking at a topic; in which case it will take longer to render the page. Time-based refresh can also be disabled in favor of an on-demand cache update.
The rendering of TWiki markup to HTML is not cached. That is, user specific HTML rendering based on skin settings is not affected by the caching.
- Add a
%VARCACHE{}% variable to the topic you want to cache
- It supports these parameters:
|
|
| Parameter |
Description |
Default |
refresh="24" |
Cache refresh period in hours, e.g. maximum age of cache |
REFRESH Plugin setting |
cachemsg="..." |
Message shown when looking at a cached topic Note: Use $age to indicate the age of cache, $link to indicate the refresh URL |
CACHEMSG Plugin setting |
updatemsg="..." |
Message shown after a cache refresh Note: Use $link to indicate the refresh URL |
UPDATEMSG Plugin setting |
|
|
|
- The
%VARCACHE{}% variable gets:
- replaced with the
cachemsg message when looking at a cached topic
- replaced with the
updatemsg message if the cache has just been updated
- removed if caching is not active, e.g. when the topic gets rendered dynamically
- The cache gets updated on topic view if:
- the cache does not exist (e.g. after adding the
%VARCACHE{}% variable)
- the cache is older than the cache refresh period (unless refresh if set to 0)
- the cache is older than the topic (e.g. the topic has been updated)
- the topic is accessed with a
?varcache=refresh URL parameter (usually by following the refresh link in the cache message)
- The topic is rendered dynamically without caching when:
- the topic has URL parameters other than
varcache (e.g. to show dynamic content properly, such as table sorting, filtering, searching)
- the topic is previewed after editing
- Limitations:
- The cache is not user specific. For example, all users see the expanded
%WIKIUSERNAME% of the person who refreshed the cache (on demand or by looking at a topic with an exired cache)
Plugin settings are stored as preferences variables. To reference a plugin setting write
%<plugin>_<setting>%, i.e.
%VARCACHEPLUGIN_SHORTDESCRIPTION%
- One line description, is shown in the TextFormattingRules topic:
- Set SHORTDESCRIPTION = Cache TWiki variables in selected topics for faster page rendering
- Debug plugin: (See output in
data/debug.txt)
- Default refresh period in hours. No automatic refresh:
0, default: 24
- Cache help messages. Use
$age to indicate age of cache, $link to indicate the refresh URL
- Set CACHEMSG = This topic was cached $age ago ([[$link][refresh]])
- Set UDATEMSG = This topic is now cached ([[$link][refresh]])
- #Set CACHEMSG =
- #Set UDATEMSG =
Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the Plugin on the TWiki server.
- Download the ZIP file from the Plugin web (see below)
- Unzip
VarCachePlugin.zip in your twiki installation directory. Content:
|
|
| File: |
Description: |
data/TWiki/VarCachePlugin.txt |
Plugin topic |
data/TWiki/VarCachePlugin.txt,v |
Plugin topic repository |
data/TWiki/VarCachePluginTest.txt |
Plugin test topic |
data/TWiki/VarCachePluginTest.txt,v |
Plugin test topic repository |
lib/TWiki/Plugins/VarCachePlugin.pm |
Plugin Perl module |
pub/TWiki/VarCachePlugin/cachetopic.gif |
Cache icon 16x16 |
|
|
|
- TWiki 4.0 and up: Run the configure script to enable the Plugin
- Test if the installation was successful:
- Visit the VarCachePluginTest topic, it contains a nested search
- Click on the refresh link or append a
?varcache=refresh parameter to the URL
Related Topics: TWikiPlugins,
DeveloperDocumentationCategory,
AdminDocumentationCategory,
TWikiPreferences
--
TWiki:Main/PeterThoeny - 06 Jan 2006
Topic revision: r12 - 2009-06-03 - 22:04:13 -
DanKerr