We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

Render time for very large lists

Is there a way to minimize the control render time when a very large number of items are loaded?  For example 5000+?  Currently you see the standard html control for a second or so then the ej control renders.

1 Reply

NP Narayanasamy Panneer Selvam Syncfusion Team September 12, 2019 11:20 AM UTC

Hi Michael, 
 
Good day to you.



Yes, you can increase control rendering speed while you load huge amount of data. To resolve this problem, you have to load data to the control on-demand. In the below sample we have fetched and loaded data to the control using Virtual Scrolling technique. The data will be load into combobox suggestion popup on-demand, while scrolling. We have done this in ComboBox’s open event. Kindly refer to the following code snippet.
 
 
Code example:  
    var isInitial = false; 
    function onOpen(args) { 
      if (!this.isInitial) { 
        var start = 11; 
        var end = 20; 
        var instance = document.getElementById("customers").ej2_instances[0]; 
        var listElement = instance.popupObj.element.firstChild; 
        listElement.addEventListener('scroll', () => { 
          if ((listElement.scrollTop + listElement.offsetHeight >= listElement.scrollHeight)) { 
            var filterQuery = this.query.clone(); 
            this.dataSource.executeQuery(filterQuery.range(start, end)).then((event) => { 
              start = end; 
              end += 5; 
              instance.addItem(event.result); 
            }).catch((e) => { 
            }); 
          } 
        }) 
      } 
    } 
  
For your convenience we have prepared a sample, please get it from the below link, 
 
Kindly let us know, if you need further assistance on this. 
 
Regards,  
Narayanasamy P.  


Loader.
Up arrow icon