Caches

General notes to caches

Note: When configuring the caching for modules and joomla, keep in mind that cached content can deliver incorrect outdated information to users and stop modules publishing updated values.

A cache is in general an idea to save processing time and effort work and improve load speeds.

In our computers we have really a lot of different caches. CPUs had just a Level1 cache, modern CPUs have usually a big cache stepped in 3 levels. Even our storage has a cache. Servers have bigger hardware caches than desktop computers. Just to give an idea, why servers are faster for serving webpages even with less GHz than the normal desktops. When we talk about caches it is very important to say which kind of caches. The whole chapter of caching has a lot todo with correct understanding of the basics.

Before the joomla page is even installed, there are usually already some software caches available. Which module is suitable depends already on the used server software. Usually apache or nginx, both have caching abilities on server level. But it is quite hard to get some of them correctly working for php pages.

Joomla itself has a caching system, which is even extendable by plugins. This system can be configured in the joomla main configuration. The cache stores parts of the already rendered html as file.

The "progressive caching" should not be used! It is creates a cache file for any rendered page per user. So any user has no cached file for the first call. This makes no sense, because users do not tend to browse the same pages. It is very likely that they leave the store before they find out, that loading the category a second time is a lot faster. The classic cache works so, that the rendered pages are stored user independent. This lowers the server load and can be a lot faster. VirtueMart uses this plugin system of joomla. Some cache calls ignore the setting of joomla (for example the vm news feed and the categorytree), because the cache is automatically cleared and delivers only function results (not a rendered page).

Developers can delete these caches in the joomla cache overview like standard joomla caches if needed.

It is important to check the cache settings of any joomla module, when deciding to use the cache system.

For example, it makes a lot sense to cache the currency switcher, but it is crucial to disable caching for the cart module in adddition the cart and user pages should not be cached.

In the product module there is an extra cache setting, which allows you to configure how often the module will display different products. When the normal page cache is set to 15 minutes, the featured products change every 15 minutes. But you can set the vmcache for that module to 5 minutes.

VirtueMart has a lot static caching variables to deliver already calculated results directly. If we display a product group, derived from one parent, then the parent product is loaded only once for all children.

From a developers perspective, sometimes a cache of certain information is undesireable and leads to unexpected results. In this case you can contact us to help find a solution, maybe the key of the cache can be enhanced. If there is no solution, we can force an "empty the cache variable" to resolve the problem.