Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Partial Caching SS3

Go to End

4 Posts   795 Views


Community Member, 545 Posts

28 August 2012 at 12:40am

I'm not sure if this is an issue with partial caching or my understanfing of it. If I put a cached block in my Layout/ it caches the first content loaded for that pagetype and not for that specific page. So any page of that pagetype shows the same content unless I flush the cache


Community Member, 473 Posts

28 August 2012 at 9:28am

Have a look at the documentation for partial caching.

If you don't provide a key that is specific to that page, then the cache block will be the same across pages.


Community Member, 545 Posts

25 October 2012 at 2:33am

Just wondering if useing something like <% cached $URLSegment, LastEdited %> is the best way to handle partial caching on pages or should the key be genreated from a cusotm function?


Forum Moderator, 922 Posts

25 October 2012 at 2:40pm

Edited: 25/10/2012 2:42pm

Depends on what you're doing, but I find that most page types which are either pulling the current page's $Content, $Title etc, or from another page, or generating a menu, this key seems to work well:

<% cached 'mycachekey', ID, List(Page).max(LastEdited) %>
   ... content goes here
<% end_cached %>

The cache is invalidated by page ID, and whether any Page or subclass on the site has been modified.

Obviously if you have a lot of special template controls, or time based data inside the cacheblock, you'll want to generate the key from a custom function instead.