General Options

The Dynamic Content Strategy setting in the general options is one of the more important settings to consider. It allows you to have dynamic page content updated either via AJAX after the page has loaded, or from version 1.9.0 using BigPipe technology to update it before the page is completely delivered to the browser.

The reason this option exists is that with some third party extensions you can run into issues when content is updated via an AJAX call, where blocks you have set to update rely on a JavaScript onload event. The extension already fires a JavaScript event of it's own called evolved:loaded for cases like these, and using this instead of dom:loaded will resolve any JavaScript issues you may have.

For more information on this including detail on best practice for instantiating JS classes see the developer resources section of the documentation.

The inclusion of BigPipe from version 1.9.0 can allow you to overcome JavaScript related issues but still keep caching performance almost as good as when using AJAX, but a very important point here is that you cannot use Varnish in conjunction with BigPipe. So when deciding which strategy to use, consider the advantages and disadvantages of both.

  • AJAX performance is the best, but you can encounter JavaScript related issues when excluding blocks which rely on certain JavaScript functionality. AJAX works fine along side Varnish.
  • BigPipe performance is slightly less fast than AJAX, but you may resolve JavaScript related issues for excluded blocks. You cannot use Varnish with BigPipe.

Essentially unless you are encountering JavaScript issues which you cannot resolve using the evolved:loaded event or the best practice described in the developer resources section of the documentation, even though BigPipe performance is very good, we still recommend using AJAX as your dynamic content strategy. Also if you want to use Varnish then you must use AJAX strategy.

Since version 1.6.9, The second setting you will find in this section is Flush Varnish Cache. If you are using Varnish in conjunction with Evolved Caching and have the VCL from the varnish section of the documentation, then you can enable this setting to also have Varnish cache deleted when managing the cache in admin, for instance when flushing the cache through cache management, deleting entries in the Full Page Cache Entries grid, or when saving products, categories and CMS pages with Automatic Cache Clearing enabled. The Varnish cache will also be warmed with Automatic Cache Warming enabled.

Version 1.8.1 adds a new option here, User Login Required. You should enable this only if your store requires users to login before they can gain access.

Version 1.9.2 adds another new option to this section - Crawler Currencies. This allows you to optionally extend crawler functionality to also crawl pages in all of the store currencies rather than just the base currency. By selecting All Store Currencies the amount of cache generated by the crawler will double for each additional currency available for the store so this is worth considering before enabling this option.

Version 1.9.3 adds the Refresh Expired option to this section. From this version the Refresh Entries button on the Full Page Cache Entries grid now rebuilds the cache (rather than just clean up expired entries as it did before). The Refresh Expired setting allows you to define whether expired cache entries will be be rebuilt, or just cleaned up when clicking the Refresh Entries button. If you are using file based storage you probably will want to set this to Yes, but if you are using Redis, Memcached or APC storage, then setting this to Yes could run the risk of pushing more relevant cached entries out of the cache when rebuilding expired entries if cache storage capacity is exhausted.

Version 1.9.6 adds the Compress Cache option. This applies to files, Redis and APC cache storage types (compression for Memcached is configured under Cache Storage Configuration). By enabling this you can significantly reduce the size of your cache (in our testing by 85%) while introducing only a very minor overhead resulting in pages being served just 2-3 milliseconds slower. Well worth it if you are using one of the memory based cache storage options.

Version 1.9.16 adds the Use Proxy setting. Evolved Caching uses cURL whenever it rebuilds a cached entry. If your setup sits behind a proxy you can configure it here and these cURL requests will then pass through this proxy.

Version 1.9.17 adds the Common Merged Filenames setting. This allows you to keep the same merged CSS and JS file names when adding or removing JSS and CSS from your store, the result being you don't need to refresh the full page cache in these cases as the cached asset URL's will still be correct. For more information see this blog post.