June 26th, 2013

KeepaliveLightThe Joomla keepalive behavior makes a periodical AJAX request for the site or administrator default page (the homepage), loading the modules, and (likely) content plugins – performing all associated database queries. Trim the fat with KeepaliveLight.

This package isn’t going to appeal to many admins because a single homepage load every 14 minutes (the default) isn’t going to cause a tremendous load. For those who use rely on keepalive in their extensions – this can save processor time and bandwidth. Remember, keepalive is present on every page with a login module while the user is not logged in!

(These results are system dependent, KeepaliveLight will reduce your overhead for keepalive requests)
Admin Keepalive request:
20 Database queries, 4.96 MB Memory usage, 4.85 KB Page size.
Admin KeepaliveLight request:
11 Database queries, 3.8 MB Memory usage, 0.79 KB Page size.

Site Keepalive request (standard install using the default template, every environment will differ – most will be more than this):
26 Database queries, 7.72 MB Memory usage, 4.42 KB Page size.
Site KeepaliveLight request:
9 Database queries, 5.69 MB Memory usage, 0.56 KB Page size.

One of my clients has users who must stay connected to a page for several hours. During peak times, this creates a significant load on the server with every user making these periodical requests. I created this as a way to drastically reduce the overhead of these requests. When I realized how sessions were being kept alive, I knew that I wanted to have a less expensive way, so I created one. Why burden your server with unnecessary queries and loading includes that will never be seen by anyone?

This package consists of a component and a plugin.

The component doesn’t do much – in fact, it doesn’t do anything – no queries, no output. It exists to do nothing. I didn’t even bother to write the translation files because – it doesn’t matter – nobody will see it. When a keepalive request is made, this component is called using the component template so no modules are loaded. It doesn’t process content plugins, so you’ll at least save the memory required to include those files.

The plugin does all of the hard work. It scans the script output, adjusting the keepalive request to get the keepalive component content instead of the homepage content.

This plugin no longer requires stream wrappers. The two reviews below which describe blank output are no longer possible.

Please note: This plugin doesn’t add keepalive behavior to your site, it only modifies the existing behavior so that it is less resource intensive. You might look for my SessionKeeper extension if you’re interested in per-group keepalive.

Version 1.6 – better Joomla 3.0 compatibility
Version 2.0 – complete rewrite to a non-stream method and much faster method

4/26/2012 – Joomla 1.6/1.7 availability and support withdrawn.

All of my extensions are free and none of my extensions display advertisem