Expand my Community achievements bar.

SOLVED

How to exclude the single component in the page from caching.

Avatar

Level 3

We are using list component OOB . Giving the list conditions to list the child pages.

if i create child and activate the page that will shows up in the list component where i have used it both in author and publish. Because of dispatcher caching list is not getting updated. 

Please suggest me how to get ride of this issue.

Thanks in advance...

Ramya

1 Accepted Solution

Avatar

Correct answer by
Employee

Hi Ramya,

you should read about configuring the stat file level, often you will have references to a page from another page, and unless you clear the cache to an appropriate level, you end up with stale content when an update is done on a single page referenced in other pages, as is you case. (Unfortunately there is no replication agent OOTB which clears the content and any references to that content.)

The usual way to get around this is to have a stat file level of 0, so everything get's cleared. Depending on your load/performance testing, if this generates to much load on the server, then you can increase the level. For example if you have a global site, you often only clear a single language when a page is changed in that part of the tree.

Regards,

Opkar

[1] https://docs.adobe.com/docs/en/dispatcher/page-invalidate.html

[2] http://www.slideshare.net/andrewmkhoury/aem-cq-dispatcher-caching-webinar-2013

[3]

View solution in original post

5 Replies

Avatar

Level 8

You can look at using the Cognifide Sling Dynamic Include (https://www.cognifide.com/blogs/cq/sling-dynamic-include/#.VfIQM51VhBc) it works very well but it does request the component via ajax for each page load.

You could also add an event listener that listens for replication actions and if your page contains a certain component type (which you can determine by the node tree/query), you could also then activate the home page.  This would alleviate the issue caused by Opkar's suggestion which is that every page will be re-fetched every single time any page is activated.

Avatar

Correct answer by
Employee

Hi Ramya,

you should read about configuring the stat file level, often you will have references to a page from another page, and unless you clear the cache to an appropriate level, you end up with stale content when an update is done on a single page referenced in other pages, as is you case. (Unfortunately there is no replication agent OOTB which clears the content and any references to that content.)

The usual way to get around this is to have a stat file level of 0, so everything get's cleared. Depending on your load/performance testing, if this generates to much load on the server, then you can increase the level. For example if you have a global site, you often only clear a single language when a page is changed in that part of the tree.

Regards,

Opkar

[1] https://docs.adobe.com/docs/en/dispatcher/page-invalidate.html

[2] http://www.slideshare.net/andrewmkhoury/aem-cq-dispatcher-caching-webinar-2013

[3]

Avatar

Employee Advisor

The dispatcher caching acts on a per-file level. The dispatcher either caches a file or it doesn't cache a file. But it's not possible to cache only a piece of a file.

So you need to split your page into different "files" (that means requests), and then either let the browser do the weaving (AJAX approach) or the webserver (SSI).

Kind regards,
Jörg

Avatar

Employee

Hi Ramya,

you need to decide how "dynamic" this use case is. How often is this likely to happen. Then you can decide on which approach you wish to us: cache invalidation, Ajax, SSI, ESI or SDI.

Also note with the dynamic approaches, if the new page you are adding needs to be added to your sitemap or menus, how will those be updated if you are doing dynamic includes. 

Below is some reading material.

Regards,

Opkar

[1] https://www.linkedin.com/pulse/serving-dynamic-pages-via-adobe-aem-denis-mikhalkin

[2] http://www.aemmastery.com/2014/11/28/aem-design-patterns-admin-pages/