ICEfaces
  1. ICEfaces
  2. ICE-10880

ace:dataTable, optimize data loading in lazy mode

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-3.3.0.GA, 4.0
    • Fix Version/s: EE-4.2.0.GA, EE-3.3.0.GA_P05
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      Any

      Description

      The ace:dataTable component is a very complex component with several features that have to be integrated together in elaborate ways to make everything work as seamlessly as possible. Some of these features, such as sorting and filtering, require the underlying model to be rebuilt at certain stages during a request, in order for them to work correctly. More specifically, the getValue() method of the component has to be called multiple times during a request for different purposes. Typically, the model has to be rebuilt 3-6 times during a request, whether in lazy mode or not.

      Because, in lazy mode, loading data can be an expensive operation on some applications, it would be beneficial for many users if the ace:dataTable component was more efficient in calling LazyDataModel.load(), thus optimizing its performance. This could be accomplished via a built-in caching system and/or with better logic to avoid rebuilding the model in certain cases. The purpose of this JIRA is to investigate the possibility of improving data loading performance in lazy mode and implementing an optimization that is feasible if possible.

        Activity

        Repository Revision Date User Message
        ICEsoft Public SVN Repository #51574 Tue May 30 13:24:41 MDT 2017 art.zambrano ICE-10880 modified comment
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTable.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #51573 Tue May 30 13:14:23 MDT 2017 art.zambrano ICE-10880 modified approach to handle filtering requests in a special way, reducing the number of invocations of the load() method to only 2
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTable.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #51530 Mon May 15 19:58:18 MDT 2017 art.zambrano ICE-10880 fix to call the LazyDataModel load method only once during the render phase and once during the previous phases, unless it is a filter request
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/model/table/LazyDataModel.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTable.java

          People

          • Assignee:
            Arturo Zambrano
            Reporter:
            Arturo Zambrano
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: