Expand my Community achievements bar.

SOLVED

Sling model - multiple invocation

Avatar

Level 2

Hello All, 

 

 We have an issue with 1 of our "card list" components. The card list model fires a AEM query using query builder API to get a list of pages under the current locale node with a particular template type. This result is then iterated to retrieve some properties like Title, Desc, Image, Authors, Date Published etc.. This is then rendered in HTML by HTL with expressions. We are using a max limit on the query to 100.

 

The component works as expected, however we are observing the Sling model is being instantiated twice. This is adding extra load to the server and negatively impacting the page load performance as well. Further on analysis, we observed removing the img tag in the component fixes the issue. Just adding the img tag ( even with hard coded url instead of sling model reference) causes the issue. We are using 6.4.8.

 

Any ideas what could be causing this issue would help our investigations.

 

Thanks

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

@remakj can you post your HTL code maybe with dummy references also fine..

 

Without calling sling model twice in HTL or without adding more than one component of same type to page, I don't see any possibility of calling sling model twice.

View solution in original post

5 Replies

Avatar

Community Advisor

To understand how you have implemented your component , your Card List component has a Sling Model, which internally query as you mentioned right ? 

 

If that is the case how the image tag is invoking the sling model ? 

Avatar

Level 2
Hi Veena, Your understanding is correct. The Sling model in its PostConstruct method does the query and populate a list. This is used with in the Sightly template to render the list. I am not sure how the image tag is invoking the Sling Model as well. All I can find out is removing the tag causes the Sling model to be triggered once.

Avatar

Community Advisor
May be if you can give a similar sample code to replicate the issue would help us. There is no other possibility I see for this to happening unless it is called twice somewhere

Avatar

Correct answer by
Community Advisor

@remakj can you post your HTL code maybe with dummy references also fine..

 

Without calling sling model twice in HTL or without adding more than one component of same type to page, I don't see any possibility of calling sling model twice.

Avatar

Community Advisor

Could you please add the code so that we can check how it's getting called twice as it's not possible until its called twice.