ICEfaces
  1. ICEfaces
  2. ICE-10880

ace:dataTable, optimize data loading in lazy mode

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • 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

        Hide
        Liana Munroe added a comment -

        Verified can not reproduce 4 invocations of load() method ICEfaces EE-3.3.0 maintenance branch r51633 and 51694, Tomcat 8, IE11, FF 47, Chrome 59.

        Show
        Liana Munroe added a comment - Verified can not reproduce 4 invocations of load() method ICEfaces EE-3.3.0 maintenance branch r51633 and 51694, Tomcat 8, IE11, FF 47, Chrome 59.
        Hide
        Arturo Zambrano added a comment -

        Closing this issue again. I couldn't reproduce the 4 invocations of the load() method on the EE 3.3 branch. I still get only 2. I tested on Tomcat 7 and 8, using the ace:dataTable > Lazy Loading demo. I tested filtering, sorting and pagination on that demo, and I get only 2 invocations in all cases. This was tested before backporting ICE-11327. Please check if you can still reproduce that issue and provide more specific steps to reproduce, if that's the case.

        Show
        Arturo Zambrano added a comment - Closing this issue again. I couldn't reproduce the 4 invocations of the load() method on the EE 3.3 branch. I still get only 2. I tested on Tomcat 7 and 8, using the ace:dataTable > Lazy Loading demo. I tested filtering, sorting and pagination on that demo, and I get only 2 invocations in all cases. This was tested before backporting ICE-11327 . Please check if you can still reproduce that issue and provide more specific steps to reproduce, if that's the case.
        Hide
        Arturo Zambrano added a comment -

        The double request issue in the 4 trunk was fixed under ICE-11327.

        Show
        Arturo Zambrano added a comment - The double request issue in the 4 trunk was fixed under ICE-11327 .
        Hide
        Arturo Zambrano added a comment - - edited

        The issue in the 4 trunk is a more general issue with filtering. When deleting the last character, two separate filtering requests are made. This also happens in the non-lazy case. I'll create a separate JIRA for it.

        Show
        Arturo Zambrano added a comment - - edited The issue in the 4 trunk is a more general issue with filtering. When deleting the last character, two separate filtering requests are made. This also happens in the non-lazy case. I'll create a separate JIRA for it.
        Hide
        Liana Munroe added a comment -

        ICEfaces faces EE-3.3.0 maintenance branch r51577. Tomcat 8. When testing on EE-3.3.0 maintenance branch I am finding that the LazyDataModel.load() method is called 4 times in the lazyloading non-filter mode.

        Show
        Liana Munroe added a comment - ICEfaces faces EE-3.3.0 maintenance branch r51577. Tomcat 8. When testing on EE-3.3.0 maintenance branch I am finding that the LazyDataModel.load() method is called 4 times in the lazyloading non-filter mode.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: