Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Won't Fix
-
Affects Version/s: 1.6
-
Fix Version/s: 1.6.1
-
Component/s: ICE-Components
-
Labels:None
-
Environment:any
-
Support Case References:#4042
Description
When a dataTable contains other components like i.e. a selectInputDate in one or more
columns and this component is modified then the whole form gets submitted instead of
the modified component only. This results in a performance problem when users create
large dataTables. If there are tables with more then 5 or 10 thousand rows this becomes
extremely costly.
columns and this component is modified then the whole form gets submitted instead of
the modified component only. This results in a performance problem when users create
large dataTables. If there are tables with more then 5 or 10 thousand rows this becomes
extremely costly.
Issue Links
- depends on
-
ICE-1985 In some cases entire form being sent as DOM update
- Closed
The performance is being decreased due to the following factors. The huge domUpdate and the processing of hidden fields on the client side.
There are two component level and one framework level issue.
Component Level:
1- When selectInputDate renders in the pop-up mode, all calendars being rendered regardless of its pop-up state.[Fixed revision:14630. The calendar would only render when popup state is true]
2- The selectInputDate component renders couple of hidden fields based on its clientId. So when selectInputDate is inside the UIData type of component all its hidden fields multiplies by number of rows in the UIData. (Here performance decrease significantly on the client side when bridge has to serialize all hidden field before any partialSubmit)
Framework Level:
The form renderer adds hidden fields without any id attribute, so any component which renders hidden fields causes entire form to be sent as DOM update. (As this issue is framework level so I have created the following JIRA case
ICE-1985)