Understanding Global Module Caching in Joomla

Joomla 2.5 has reached its end of life as for 12/31/2014. Please be advised this may be a security risk to your website. You can view more information about the end of life here.

Enabling caching in Joomla 2.5 is a great way to speed up page load times and reduce server load. While there are several articles already on the web about Joomla 2.5 caching, they fail to provide clarity, and they all generally repeat the same information. In this article, we hope to answer common questions regarding the Global Configuration >> System >> Cache Settings.

**Note: This guide also applies to Joomla 3.

Using Tests to Understand Global Caching

In our testing, we created a simple module called mod_last_cache. This module uses the php time function and prints the current time to the screen. The idea being that if cached content is being served, you will see an older time on the page. If cached content was not being served, you would see the actual time on the page.

We also tested using two different computers. Each unique computer is referred to as User 1 and User 2 in the raw data table listed further below in this article.

RESULTS

After running our tests, we came to the following conclusions:

Unique cache per visitor Conservative cache shows all visitors to your site the same exact cached content. Progressive caching however caches the content for each user uniquely.
Toggling module caching If you want to toggle caching on/off with individual modules, set the global cache type to Conservative and then use the module’s cache type to enable / disable caching. Progressive caching overrides a specific modules cache settings.
Logged in users and cache Regardless of conservative vs. progressive caching, logged in users do not see cached module content.
Module cached is based upon the current page Each module that is cached can have a different cached version for each page. For example, if you had a “related questions” module, a cached version of this will work (it would show a cached version of related articles for each different article).

Raw Results

Items in green represent cached content being shown. Items in red represents non cached content being shown.

User logged in? page1 time page2 time Debug Enabled? Global Cache Module Cache
1 no 2/24/2012 14:43:28 2/24/2012 14:43:48 yes conservative use global
1 no 2/24/2012 14:43:28 2/24/2012 14:43:48 yes conservative use global
2 no 2/24/2012 14:43:28 2/24/2012 14:43:48 yes conservative use global
2 no 2/24/2012 14:43:28 2/24/2012 14:43:48 yes conservative use global

At this point in our testing, we set the module cache type to no caching.

1 no 2/24/2012 14:46:05 2/24/2012 14:46:14 yes conservative no caching
1 no 2/24/2012 14:46:32 2/24/2012 14:46:40 yes conservative no caching
2 no 2/24/2012 14:46:49 2/24/2012 14:47:00 yes conservative no caching
2 no 2/24/2012 14:47:09 2/24/2012 14:47:21 yes conservative no caching

At this point in our testing, we set the global cache type to Progressive caching.

1 no 2/24/2012 14:47:55 2/24/2012 14:48:04 yes progressive no caching
1 no 2/24/2012 14:47:55 2/24/2012 14:48:04 yes progressive no caching
2 no 2/24/2012 14:48:31 2/24/2012 14:48:40 yes progressive no caching
2 no 2/24/2012 14:48:31 2/24/2012 14:48:40 yes progressive no caching
1 no 2/24/2012 14:47:55 2/24/2012 14:48:04 yes progressive no caching
2 no 2/24/2012 14:48:31 2/24/2012 14:48:40 yes progressive no caching

At this point in our testing, we set the global cache type to Conservative caching.

1 no 2/24/2012 14:50:08 2/24/2012 14:50:16 yes conservative no caching
1 no 2/24/2012 14:50:34 2/24/2012 14:50:46 yes conservative no caching
1 no 2/24/2012 14:51:05 2/24/2012 14:51:13 yes conservative no caching

At this point in our testing, we set the module’s cache type to use global settings.

1 no 2/24/2012 14:51:50 2/24/2012 15:04:07 yes conservative use global
1 no 2/24/2012 14:51:50 2/24/2012 15:04:07 yes conservative use global
2 no 2/24/2012 14:51:50 2/24/2012 15:04:07 yes conservative use global
2 no 2/24/2012 14:51:50 2/24/2012 15:04:07 yes conservative use global

At this point in our testing, User 2 is logged into Joomla.

2 yes 2/24/2012 15:05:25 2/24/2012 15:05:35 yes conservative use global
2 yes 2/24/2012 15:05:45 2/24/2012 15:05:53 yes conservative use global
2 yes 2/24/2012 15:06:05 2/24/2012 15:06:15 yes conservative use global

At this point in our testing, we set the global cache type to Progressive caching.

2 yes 2/24/2012 15:06:52 2/24/2012 15:07:01 yes progressive use global
2 yes 2/24/2012 15:07:12 2/24/2012 15:07:20 yes progressive use global

At this point in our testing, we enabled the global settings debug feature.

2 yes 2/24/2012 15:10:14 2/24/2012 15:10:23 no progressive use global
2 yes 2/24/2012 15:10:34 2/24/2012 15:10:41 no progressive use global
1 no 2/24/2012 14:51:50 2/24/2012 15:04:07 no progressive use global
1 no 2/24/2012 14:51:50 2/24/2012 15:04:07 no progressive use global

Leave a Reply