We have just released version 0.9.3 of ScriptMerge - a powerfull CSS and JavaScript merging and compression tool. ScriptMerge is not for Joomla! newbies and should be used with care. But when applied and working, it boosts your site speed tremenduously. Let's take a look at the new features of 0.9.3.
A plugin plus a component
Before, ScriptMerge used to be just a plugin, but now it ships with a component which is required for the correct workings of the plugin. The main reason is that ScriptMerge now offers two different Merge Types: A cache-file which is written to the Joomla! cache-folder, but also a dynamic list which gets built every time a page is called. The first could be seen as static - good for performance. But the second is actually good when Joomla! page caching is applied, but still the CSS could dynamically be changed: The WebP trick is one of these dynamic conditions.
WebP support
ScriptMerge now has WebP support - a format that allows you to replace PNG and JPEG images for specific browsers (Chrome browsers have native WebP support, Firefox has a plugin for it), which will reduce the download-size of images dramatically. When WebP-support is detected, ScriptMerge is able to replace all normal images with WebP images. But because this is changing the CSS dynamically, the static cache can not be used: Instead the component is called upon. Note that you need to have WebP installed on the operating-system level to use this feature - if you're not a sysadmin, forget about it.
Data URI support
The new ScriptMerge also supports data URIs - small images can be included in the CSS itself as data URIs, without the need for the browser to make an extra HTTP-call. The maximum size for images served this way is configured in the plugin.
JSMIN support
ScriptMerge also supports JSMIN. Instead of trying to write our own CSS and JavaScript compression techniques, we will be focussing on integrating existing system tools into ScriptMerge. JSMIN is one of them. It is again needed to install this on the OS-level, but once installed and configured in ScriptMerge, your JavaScript in the best way possible.
Emergency stop
Last but not least, the new ScriptMerge now also supports a simple URL-flag to temporarily de-activate ScriptMerge. Imagine yourself being stupid and simply enabling ScriptMerge without a proper strategy: Now you got yourself a frontend that crashed, and perhaps a backend that is full of JavaScript-errors - keeping you from deactivating the plugin again. By adding the URL-argument scriptmerge=0 to the URL, you can temporarily deactivate ScriptMerge for that page (not the entire session, only that page).
About the author
Jisse Reitsma is the founder of Yireo, extension developer, developer trainer and 3x Magento Master. His passion is for technology and open source. And he loves talking as well.