In 2014, Salesforce introduced the front-end platform called Lightning, the next generation of CRM is based on front-end web technologies, providing much functionality to help customers close deals faster and smarter. Sales teams now can see and present data to their customers and potential customers in visualized ways. Lightning is a component-based framework allowing components to be reused in different places within organisation and admins to quickly customize pages for different needs from various users.
In JS controller,
In Apex controller,
As a result, it creates an infinite loop which keeps firing getStrings function. The reason is that the queued action list has taken the method name, not the action variable. The queued action list fires getStrings function, inside the function, a statement puts function again into the list, and so on.
To avoid this problem, JS functions in JS controller can be named as getVariableNameFunction and inside the functions, query action variables can be named as getVaribleNameAction. By doing this, normal naming convention remains the same and can avoid confusion for Lightning framework when picking the actions up.