What We Do
We provide top quality services and best solutions based on your requirements and needs.
Share

Caching up for peak performance with MXAE

A very common concern with dynamic websites is the perception that they are relatively slower to load compared to a static websites serving plain vanilla HTML file.  Although there may be some truth in the statement, it however does not mean that a plain static HTML website is the best choice.  Dynamic websites are mushrooming everywhere in the internet because of its benefits of providing interactivity and targeting to users.  This means a dynamic website can cater for differing groups of users in a way that a one version only static website is not able to.  Therefore, the key question is not whether we should abandon building a dynamic website but a question of how we can optimise a site so that its performance and speed is comparable to a static website if not better.

Why Cache 


One of the answers lies in the intelligent use of caching functionality.  As with all things, there are many methods to cache data for optimizing web performances depending on the situation.  With the right caching strategy, a website may experience a dramatic improvement in loading speed.  The topic of caching covers a lot of ground from server side caching to client side caching and can even include proxy caching. This article will concentrate on the functionalities that MXAE provide to help get you started with improving your website performance right away.  If you would like to know more about general web caching, this site should be a good starting ground.

MXAE provides many options to help you make caching less painful and easily implementable. 

Page Accelerator

The first type of caching that can be easily configured and automatically implemented within MXAE is through the use of the "Page Accelerator" module in AMS.  This module within the AMS allows for users to select pieces of content that they would like to have caching enabled.  For example an administrator can enable caching of binary data and attachments within the website so that downloading them can be faster.  Alternatively, the administrator can decide to setup caching of content for the home page programs so that the articles are readily available without fetching it from the database.  For a very heavily accessed site, setting of the expiry even for a 5 seconds period will help to offload a lot of processes while skill keeping the content fresh, albeit with a 5 seconds delay.


In summary, the first type of caching that are readily available on MXAE is through a built in Page Accelerator module that allows for caching of content.  This method of caching helps speed up the website by not overloading the database processes with queries while keeping frequently used content in memory longer.
Configuring Website Properties
 
Website Properties
The second method of improving performance of a dynamic website without a lot of work is to properly configure the website's property.  Within the AMS, the "Website Property" module shows a list of variables that can be configured for that particular website.  These settings are analogous to a configuration file setting.  There are a few of these settings that if properly tuned for the particular website according to its content and functions, will help improve performance.  The following are a few of them that would be of interest:
  • publisherCacheControl1, publisherCacheControl2

These settings will manipulate the header sents for the particular content so that browsers will keep a copy of the content locally.  The next time a user wants to browser the cached content, instead of requesting it from the server, the browser will just bring up a copy of the cached content and thereby saving bandwidth on the server while 'improving performance' from the user's perpective.

  • publisherOutputCompression

This setting will instruct MXAE publisher to compress any output to be sent to the client and hence speed up delivery of the content because of its smaller size.  It should be noted however that your web page may appear longer to load if it does a lot of processing since compression can only be done after getting all the content.

  • publisherOutputBuffering

This setting will turn on buffering so that all the output from the server will only be sent to the client browser all at once.  This will speed up delivery of the web page data to client but again it may take a long time to load if there are a lot of processing involved for the website.

  • publisherInternalCache

This is the number of seconds to set for caching of publisher internal data.  This helps to improve internal processing and thereby helps improve website performance
 

Going into the code

Finally for an even lower level of control, implementers of the websites can further use the MXAE API or through the TSL (MXAE Template Scripting language) to control which actual templates or elements to be cached.  This is the lowest level of control as individual code fragments as well as whole templates can be selectively cached to optimize performance. 

Some examples of setting a cache setting includes: 
  •   <!--[template cache=3600 code="header"]-->  (This will cache the output of the header template for 1 hour)
  •  <!--[list mode="article" parent="hotsite" cache=300]-->    (This will cache the articles for 5 minutes)
In this article, we have touched on caching as a way to optimise the performance of a website. There are many other ways to improve and optimise a website performance including design of the pages as well as structure of the content.  Those other aspects of website performance optimisation will be covered as another topic of its own.

MXAE Release News

MXAE 2.7.5 Released
We would like to announce the immediate availability of MXAE 2.7.5. This release focuses on...




Tips & Tricks

MXAE Server - Changing IP(s)
Since MXAE version 1.6.5, MXAE comes bundled with a script to assist our customers to change...




MXAE Free Hosting

We are offering FREE hosting on MXAE platform with no string attached. You can use it as a development or demo hosting for your company. You can also use it to build your own website or host your client website.