Expand my Community achievements bar.

Taking more time to load the component in the page

Avatar

Level 2

I have created the a component with nested multified which contains 12 fields. we tried to add more than 60 multifields in the dialog and it is taking more time to save the contents and load the dialog. Sometimes it is showing only limited contents in the dialog. Also frequently getting page unresponsive alert message in the browser. 

The main purpose of this component is to get the data in the form of JSON and use it in the third party application using the servlet api. If we split and author the content in separate page it will affect the response structure. 

FYI, I tried to extend the Apache Sling Main Servlet limit to 10000. But still I have the same issue.

Is there any alternate solution to avoid / resolve the issue ?

5 Replies

Avatar

Level 6

Hi @Vignesh_K_S ,

This is expected since AEM loads a lot of scripts which sends backend requests to fetch and fill the data on the multi fields. Increasing the limit Servlet limit is not recommended and it will have performance issues which you already are facing. The only way to get around this is to design your multi field component better so that you do not load them at once.

Refer - 

https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/aem-component-dialog-with-... 

https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/too-slow-loading-when-open... 

 

Regards,

Anupam Patra

Avatar

Community Advisor

Hi,

 

The best approach would be to move the data outside the component dialog and access it through other means. You can still manipulate the data and return it in whatever response structure you need. For example, you could store the data in Content Fragments, an ACS Common List, or even a static file. Then, you can retrieve the data from the chosen structure and shape it into the required response format. The structure you choose will depend on the specific requirements and how the data will be used.

 

 

Hope this helps!



Esteban Bustamante

Avatar

Community Advisor

Hi @Vignesh_K_S - Ideally, you should be changing your component design. A multifield of 12 fields with about 60 entries is not only going to slow your load time but also difficult to manage it from the authoring perspective.

Explore the following options to determine if they can be a good alternative to the multifields.

  1. Content fragments which supports JSON rendering of data OOTB. Ref: https://experienceleague.adobe.com/en/docs/experience-manager-65/content/implementing/developing/com...
  2. Generic lists for a simpler solution based on your usecase. Ref: https://adobe-consulting-services.github.io/acs-aem-commons/features/generic-lists/index.html

 

Regards,

Avatar

Community Advisor

I would suggest to break into sub components with parent component and use the data together in parent compoentn and expose to 3rd party for consumption..

Avatar

Community Advisor

Hello @Vignesh_K_S 

 

We have faced similar issue when we have multified option, but when the use case was to use more multifield items, there would be loading issues while authoring.

 

For one component, can you consider using container based component and add another component within that which can be added multiple times. We can also move the order easily compared to multifield.

 

To retrieve the data it may also be easier to use sling model json annotation to retrieve the data on page or the container component.

 

What does your multifield item look like? 

 

Please share thoughts or challenges you may face via this approach.