JotCache ver.3.1 Help

Published: 13 December 2012

JotCache Usage

Purpose

JotCache was developed in last three years as advanced solution for page caching in Joomla framework. This solution replaces standard System-Cache plugin and it usually works along enabled Global Cache Settings. JotCache consists from JotCache component allowing cache management and JotCache plugin.

New features of ver.3.0

  • Fast-changing dynamic modules on the cached web page can be refreshed with actual content during each user access. To the existing tagging of module positions on site template in the new version was added possibility to manage caching exclusion of template positions without changing the code of site template. All assigned template positions will be refreshed during each user access to cached web page.
  • Possibility to select site URL requests which will force browser caching (locally on user side)
  • In the management view was added listing and filtering of cached pages based on page URI.

and all major features from oldier versions of JotCache

  • Cache management with faster opening on larger web sites. The cached files are presented with cached page titles and links, added more informations about cached page (browser type, language, non-routed query string), implemented items ordering, changed information about date/time of caching (incl. indication of expired or no more existing cache files).
  • Exclusion of selected pages from page caching based on component, view and URL query parameters.
  • Plugin functions for more powerfull autoclean (garbage collection) activity.
  • Possibility to set different page caches based on user browser type. Standard options allows to have different caches for Internet Explorer browsers - IE6, IE7, IE8, IE9. All other browser types are using common page cache. When used template system has separate templates for mobile phones then here is possibility to exclude mobile users from page caching.
  • Cached page content can be compressed before saving into the cache. JotCache Plugin has option to compress (gzlib) cached pages before storing to the cache, therefore the web access to cached content is accelerated. Compressing function covers static (page) as well as dynamic module content.
  • Possibility for site administrator to clean the page cache only for selected pages. It is possible to see the actual cached pages linked to used component and view.
  • Fast check of cache operation on live site without disturbing other users. For easier overview of cache mechanism on frontend pages administrator can mark his/her browser access with specific cookie allowing later to display marked page and excluded template positions / module content solely to administrator.

Caching overview

Joomla CMS is using standard two different cache types for improving server response times :

  • Global (core) cache for caching of selected parts (modules, component views, etc.) during rendering stage of request processing.
  • Page cache dedicated to cache the entire web page for server output processing. In the plain CMS this function provides system plugin – System Cache.

In the following picture you can see same of major processing stages (prepare, render, finish) during Joomla CMS response processing and related cache activities in the case when JotCache plugin is used instead of System Cache plugin. Mostly render processing stage is very time consuming and for this stage is enabled Global core cache very helpfull.

But from the entire server response processing only a part of code (can be) is covered with global caching and therefore page caching which bypasses all the rest of output processing (as seen on next picture) for active (non-expired) cached web page can be in some multiple time faster as plain use of Global cache.


Cache management

Management view

Opening JotCache component you have the possibility to look into one-to-one relation between cached pages and their original resource - title, original link, unrouted link (when Mark option is set on), component name, view, content id as well as parameters which have influence on separate caching – browser split (setting in JotCache plugin) and language set for cached page. Here it is necessary to remember that core of page caching with JotCache is server file system where all cached pages are stored as files. In the time of storing these files are also stored management data into database (table jotcache).

Remarks to items expiration & synchronisation

After specified cache time stored files of cached pages are no more valid – they expire. Here are important two topics for proper management : removing of expired files from file system and database as well as keeping set of stored cached items in synchronisation between file system and database.

For fast responses during opening/filtering management activities no removing/synchronisation of expired items from file system and database is performed.

Expired items are marked in management view with item line in italics font and Created time value is embraced with :

  • '()' for cache files expired and present in file system
  • '##' for cache files no more present in file system.

Thus the administrator has fast overview about the cache status. For refreshing view to latest content and removing of obsolete items shall be used Refresh button on Cache Management toolbar.

Presented informations about cached pages

When calling page in Joomla front-end each unique URI string represents cached item when following major conditions are fullfilled :

  • user is not registred in CMS (anonymous user)
  • it is used GET method
  • no DEBUG mode used

For cached item is presented in JotCache management view :

  • page title with link to original frontend page call (if implemented with SEF routing) or URI string based on settings in component Parameters
  • page call target expresed as component, view, content id (some third parties extensions are not using view, content id but they have own parameters)
  • time of item creation (server system time)
  • language set for item content
  • browser (selection from most used browser types, mobile exclusion in plugin)
  • mark with link to original page query string (can be used for page exclusion) – it is shown only after clicking on toolbar button Set Mark after frontend pages recalls

Selecting of cache items for deleting from the cache

For selection of cached pages which shall be deleted from the cache you can use following methods :

  • individual selection with checkbox on the most left position of displayed item row
  • search by page title and then use checkbox(es) for selection
  • group selection for all cached pages of selected component and/or view with appropriate selection boxes
  • selection of marked pages using Set Mark button. Pressing this button creates setting of mark cookie in administrator browser during current session and then after all visited pages in site frontend shall be marked with  visible 'Yes' in JotCache Management view. Using top selection box you can select only last visited page(s). 'Yes' mark has link to cached page with transparent URL query string (without any SEF transformations) which can be used for definitions of excluded pages (on the page shown after pressing Exclude on management view toolbar).

Exclusion of pages and modules from page caching

Components, views, parts of uri excluded from page caching

Starting with JotCache, ver.1.1 we have available powerfull tool for excluding components from caching process. On the toolbar of Cache Management it is located Exclude button which opens excluding form :

In this form are listed all components installed in Joomla CMS identified by Component Name and internal code (option) which is also one part of page URL.

You can exclude from caching entire component processing with checkbox Excluded checked and empty Views input line.  

Excluding only specific views of the component you can do with checkbox Excluded checked and Views input line contains list of excluded views separated by comma. When you want to remove component from Exclude Component list then simply uncheck appropriate checkbox and press Apply or Save button.

Here is also possibility to exclude selected pages based on parameters of URL query string. It is generally known query parameters pairs (name and value) are located in the part of URL starting with ? character and each pair is separated with & character.

For exclusion purposes here is necessary to use parameters pairs of URL query in form as they are shown in mark 'Yes' link on JotCache management view (see previous paragraph). Parameter pairs are simply inserted into given component line in Exclude Views & Query Parameters input box :

This example is using parts of URL query string 'index.php?page=shop.browse&flypage=flypage.tpl&product_id=1&category_id=1&option=com_virtuemart&Itemid=56'

Multiple parameters pairs are separated with ',' character and can be intermixed with component views as described in previous section. When inserting or changing text in Exclude Views & Query Parameters input box (events 'click' and 'onchange') then automatic validation check on above described rules is performed. Only fully validated definitions are possible to save in database.

Module positions excluded from page caching

In the Joomla 1.5 CMS framework each module is placed to template specific position (see Administrator > Extensions > Module Manager / column Position. For graphical presentation see Administrator > Extensions > Template Manager, click on used template name and then click toolbar button Preview). 

Starting with JotCache, ver.3.0 module exclusions can be implemented  with two different but compatible methods (they can be used each with other in the same time) :

a.)    Template positions excluded from caching can be set on new form :

On the form can be selected related template (default template is marked in select box) and for choosen template are listed all available positions.

The position which we like to exclude from caching must have non-empty input Style containing proper style name. The style name is very important because based on given style is used by parsing of modules located on specific template position.

Example for JA template - different styles applied on the same module :

Style names can be derived from template code or got from template designers.  
In the input Optional style attributes  are listed (when applicable) attributes in following format :
attr1="value1",attr2="value2",....

b.)    Marking template positions for caching exclusion by means of special comment tags on all Joomla templates which are using standard jdoc:include tags (inclusive Artisteer generated templates).

NOTE : Templates using non-standard template processing (e.g. Warp system of Yootheme) can be excluded only with method a).

In the Joomla template each module position is tagged with following tag :

<jdoc:include type="modules" name="xxx" ... />

where xxx is position name.

To exclude specific module position from page caching it is necessary to mark this position in template source (mostly index.php) with special JotCache HTML comment tags - see example :

<td>
   <!-- jot user2 s style="xhtml" --><jdoc:include type="modules" name=user2" style="xhtml" /><!-- jot user2 e -->
</td>


Text in the marking tags is separated with exactly one (1) space starting with word jotfollowed by name_of_position jot_flag params

where

name_of_position - name of position as it is used in jdoc tag
jot_flag - 's' for start marking, 'e' for end marking
params - any kinds of jdoc parameters separated with space character

Used jot tags have to close embrace the jdoc tag for proper operation.

Mark in your template only module positions which you like to be steady refreshed. When page is cached then all JotCache mark tags are stored with cached content. During recall of cached content the marked positions are replaced with module newest content.

 


Assignments for forcing local browser caching

Using local browser cache can extremely speed up user access to the content but it is necessary to take care for pages cached in this way because on locally cached pages browser IS NOT sending request to the server during entire local cache expiration time.

This type of caching is suitable for very static pages where time variation of actual content is not critical (sales conditions, informations about company, etc.).

Because on usual live sites only small range of pages fullfills these conditions the best way to implement browser caching is limitation of this feature on choosen URI path(s).

New form Browser Cache assignments :

allows to assign browser caching to all pages which URI starts with string set in definition input (Active for pages starting with URI). Each URI definition starts with '/' character.

Examples :
/joomla15m/component/content/article/43-joomla-own-components/90-jotloader122available
/radio/site/qsl-cards?task=category&cid=46&start=20
/component/beeheard/?controller=suggestions&view=suggestions&layout=list&category_id=2&filter=top

Default browser cache expiration time is possible to set in Parameters.

NOTE : This function is only active when is set Use browser caching plugin parameter to YES.


Fast check of cache operation

Check in front-end

For proper marking of cached content you need to have installed not only JotCache plugin but also the JotCache component. For page marking to put it in the operation it is necessary :

  • in the JotCache plugin parameters to set Mark Caching  to Yes
  • in the JotCache component click on Set Mark button

With Set Mark button here it is sent marking cookie to your browser and then you can see marked page title (with three @@@) when page is comming from cache :

JotCache Page Title Marking

and steady refreshed module positions are marked with dashed red outline :

JotCache Module Marking

Check in backend

The marking can be used also for fast selection of pages which is necessary to remove from the cache. The recommended selection practice is following :

  • check if list of active cached pages has any "Yes" in Mark column (use top combobox for selecting)
  • reset the marks for given pages with ResetMark button (the button is shown after click on SetMark, when SetMark is on toolbar)
  • click on SetMark button to start active marking
  • open/reload pages in website frontend which you like to be marked
  • Back in Administrator Cache Management click on Refresh button. You shall see in Mark column "Yes" for all in frontend opened/reloaded pages (you can select only marked pages with Select Mark combobox)

Selected files can be deleted as described in management view section.


Administration of JotCache Plugin

Because JotCache Plugin is advanced replacement of System - Cache it is necessary to disable system cache plugin in Administration > Extensions > Plugin Manager.
Open in Plugin Manager JotCache plugin, review parameters and set their values to required operation mode :

jotcache-params31

Explanation :

1.    Browser caching (Yes) - Web server is forcing the site visitor browser to local caching of sent content. USE with high care. Setting this parameter to 'Yes' caches all pages on user browsers with NO reloading from the site server during browser cache lifetime.

Browser Cache lifetime is set for each top URI path on component special form.
Web page is local cached in browser and it remains x minutes valid (during this time browser shall not call any more server for specific page loading but page is recalled from local cache). This behavior can be overridden pressing Reload button on the browser toolbar. Then the browser calls again server for page loading.

2.    Cache lifetime - Cached web page remains x minutes in page cache stored

3.    Compress cached content (Yes) - In cached content are whitespaces removed and then the content is compressed (gzlib)

4.    Mark caching (Yes) - Condition for displaying Set Mark in JotCache component (for presentation of front-end cache marking and backend check have to be both conditions met : Plugin Mark caching=Yes and Component Set Mark=On)

5.    Cache Auto Clean – This function is enabled by setting of positive integer x representing number of minutes. Automatic cleaning process starts initially postponed each x minutes and it performs deleting of expired cache files from the server file system. Cleaning activity is limited to max. 500 ms duration. Remaining expired cache items are then deleted during next user requests each time with max. 500 ms duration until all expired items are deleted from the cache. Short overview about the cleaning process can be gained with JotCache Clean Log parameter set to Yes.

6.    Autoclean Mode (Fast, Medium, Slow) – controlling autoclean behavior and usage of server memory for this task. Autoclean takes segment of files stored in the cache and process this segment in one internal run. In Fast mode are used only several segments and processing is fast with higher usage of internal memory. With Medium or Slow setting are these segments smaller and smaller but processing is slower. Recommended for middle sized web sites is Fast setting, for large ones you have to experiment with Medium/Slow settings.

7.    Clean Log (Yes) – Logging function switched on is allowing to have look into cache auto clean activity. Log is created in Joomla top directory 'logs' with the name ' plg_jotcache.autoclean.log.php'. Each cleaning run is represented with one log line in this format :

date             time        server IP        
2010-12-04 12:40:50 127.0.0.1  
interrupted on : (x|ffffffffffffffffffffffffffffffffffffffffffff) last deleted : y

where x – represents number of last processed segment
f..f – represents name of last processed cache file
y - represents number of deleted pages

When clean run process all items without interruption then only plain information about deleted files is stored in log. The best autoclean mode setting is with small number of interruptions taking into account reasonable internal server memory usage.

8.    Browser split – Many Joomla templates systems are using separate templates for different browser types (mostly Internet Explorer). With splitted cache storage space for different browser types you can avoid unacceptable mixing of unproper templates to site users (cached page content is not rendered when non-expired page exists in the cache). Select in the multiselect input box the browser types for which one it is necessary to have separate cache space (unselect when necessary with Ctrl+click on item). For MS Internet Explorer you can use either common 'IE' selection for all versions of this browser or specific version according the selection item.

Setting for mobile devices

If on the web site are used special templates for content presentation on mobile devices which are different from layout of desktop browsers then it is possible to choose two separate caching spaces - for tablets and for phones. Select Phone selection alone when available special template is adjusted for presentation on mobile phones (small width, special navigation, etc.).

9.    Global exclude – USE ONLY IN THE CASE WHEN JOTCACHE COMPONENT EXCLUDE IS NOT ENOUGH.
In some very rare cases can Joomla request contain 'virtual' component link which does not belongs to installed components stored in the Joomla database. In such case when you need to exclude specific links and/or pages from caching here is possibility to define parts of URL (key=value pair) which are excluded.

After saving JotCache parameters check if the JotCache plugin is enabled and located as last item in system plugins list (if it is not then correct status and items order).


 

JotCache installation procedures

Installation

Recommended install procedure :

1.    Install JotCache from file com_jotcache_3.x.x_j1X.zip via Administrator > Extensions > Install/Uninstall / Upload Package File. During installation process are installed both parts of JotCache solution : JotCache component and JotCache plugin. JotCache plugin is during installation set to the last position in order of Joomla system plugins with state disabled.

2.    Open Plugin management : Administrator > Extensions > Plugin Manager / in Select type put 'system' and disable 'System - Cache' (when enabled) and open JotCache edit. Set plugin parameters as you like and save it with plugin enabled. CHECK IF JotCache plugin IS LOCATED AS LAST in order of system plugins. If not change order in requested way.

3.    Reset the old cache content with Tools > Clean Cache select all items and press DELETE button.

4.    When you are using System SEF plugin then JotCache plugin have to follow the System SEF plugin in the Joomla plugin list (adjust order in Extensions > Plugin Manager, the best position for JotCache is the last item in the list)

Upgrade from old versions

Simply install new version of JotCache as described in 'Installation' over old one. This procedure applies also in the case when you are upgrading from JotCache version 1.x or 2.x.

Upgrading/reinstallation does not change content of jotcache tables in the database.

Uninstallation

With JotCache uninstallation you remove all related database tables, component and plugin files. Uninstallation procedure is following :

1.    Uninstall JotCache Component (when installed) : Administrator > Extensions > Install/Uninstall > Components check JotCache and press Uninstall button.

Now are all parts of JotCache removed from the application and database.

Only registred users have rights to post comments. Please log-in or create an account.

We have 64 guests and one member online
Copyright © 2015 JotComponents
We have 64 guests and one member online
Copyright © 2018 JotComponents