Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 4.0
-
Fix Version/s: 4.1
-
Component/s: ACE-Components
-
Labels:None
-
Environment:Any
-
Assignee Priority:P1
-
ICEsoft Forum Reference:
Description
When the paginator is enabled in the data table, navigating to the next or previous pages via the PgDn and PgUp keys produces multiple requests. The number of requests increases every time these keys are pressed. Depending on the sequence of keys used and the times they are used some flickering might be visible. The flickering is clearly visible when live scrolling is enabled as well.
The reason why this happens is that when the table is recreated it calls its destroy() method to clear the table of event listeners. The problem is that the call to remove the event listener for these keys in the paginator references the event handler of the current (new) instance and not the handler of the previous instance, so nothing gets removed and all these listeners fire at the same time.
So, the onElementUpdate() call has to be fixed or the previous instance has to be passed to the destroy method or a static event handler should be used instead, if possible.
The reason why this happens is that when the table is recreated it calls its destroy() method to clear the table of event listeners. The problem is that the call to remove the event listener for these keys in the paginator references the event handler of the current (new) instance and not the handler of the previous instance, so nothing gets removed and all these listeners fire at the same time.
So, the onElementUpdate() call has to be fixed or the previous instance has to be passed to the destroy method or a static event handler should be used instead, if possible.
Activity
Arturo Zambrano
created issue -
Ken Fyten
made changes -
Field | Original Value | New Value |
---|---|---|
Assignee | Arturo Zambrano [ artzambrano ] | |
Fix Version/s | 4.1 [ 11375 ] | |
Assignee Priority | P2 [ 10011 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #45983 | Thu Sep 17 14:37:30 MDT 2015 | art.zambrano | |
Files Changed | ||||
MODIFY
/icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
|
Arturo Zambrano
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Resolution | Fixed [ 1 ] | |
Status | Resolved [ 5 ] | Reopened [ 4 ] |
Assignee Priority | P2 [ 10011 ] | P1 [ 10010 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #46060 | Thu Oct 01 11:34:20 MDT 2015 | art.zambrano | |
Files Changed | ||||
MODIFY
/icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/paginator/paginator.js
MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderer.java MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.css |
Arturo Zambrano
made changes -
Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Liana Munroe
made changes -
Resolution | Fixed [ 1 ] | |
Status | Resolved [ 5 ] | Reopened [ 4 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #46062 | Thu Oct 01 15:32:04 MDT 2015 | art.zambrano | |
Files Changed | ||||
MODIFY
/icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/paginator/paginator.js
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #46065 | Fri Oct 02 13:34:48 MDT 2015 | art.zambrano | |
Files Changed | ||||
MODIFY
/icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/paginator/paginator.js
MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderer.java MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.css |
Arturo Zambrano
made changes -
Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Resolution | Fixed [ 1 ] | |
Status | Resolved [ 5 ] | Reopened [ 4 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #46070 | Tue Oct 06 10:13:36 MDT 2015 | art.zambrano | |
Files Changed | ||||
MODIFY
/icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
|
Arturo Zambrano
made changes -
Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Liana Munroe
made changes -
Resolution | Fixed [ 1 ] | |
Status | Resolved [ 5 ] | Reopened [ 4 ] |
Ken Fyten
made changes -
ICEsoft Forum Reference | http://jforum.icesoft.org/JForum/posts/list/23007.page#80463 |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #46141 | Tue Oct 27 15:29:00 MDT 2015 | art.zambrano | |
Files Changed | ||||
MODIFY
/icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/paginator/paginator.js
|
Arturo Zambrano
made changes -
Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
r45983: added mechanism to retrieve the previous table instance object and call destroy() on it before recreating the new table instance.
This issue started after introducing client IDs to the table body and table setup script. Because of this, the onElementUpdate() element doesn't fire when only the body and/or the setup script are updated (as opposed to the entire table). As a result, the destroy() method doesn't get called in the previous instance, and many event listeners accumulate. Since adding additional onElementUpdate calls for these specific nodes didn't work, the fix consists in saving a reference to the current table instance in a global variable, and then accessing this instance when the same table is about to be recreated, invoking the destroy() method of the previous instance to remove all the previous event listeners and avoid accumulating them.