Lazy Load Multi Select Drop Downs (Performance) #1922
Replies: 2 comments 5 replies
-
@kevinburkett I don't have that kind of features since I never dealt with such large grid and never with that many columns, I see that you already use slickgrid-universal/packages/common/src/filters/selectFilter.ts Lines 311 to 320 in d4a1625 You could also create your own Custom Filter/Editor even though that means a bit more work (or you could also I'm not sure if I've put some onOpen: () => {
if (column.filter && column.filter.collection) {
getUniqueFilterValues(
colIndex,
column.field,
column,
dataset,
slickgridRef,
).then(newCollection => column.filter.collection = newCollection.slice());
}
},
No plan for this kind of thing, since virtual scroll was really implemented by the original SlickGrid (and multiple-select) authors and I wouldn't even know how to properly implement that kind of thing myself. So, I'm sorry but there's no plan do virtual scrolling like this. I would rather focus on making the dropdown lazy loading work since that seems more doable and will probably fix your grid loading slowness. 🤞🏻 I mean even loading 168 columns shouldn't be that slow if none of the dropdown I'm currently focusing on releasing the next upcoming major version (roadmap to 9.0) which for React users will require React 19 and will arrive pretty soon (in a week or two). Would you be able to upgrade? Meaning, are you on React 19? Because I'm not sure if I want to spend time on the current release, I would rather push code on the new release (currently in the I could certainly help if you could provide a basic repro on GitHub or Stackblitz. but anyway I will look into it for sure on the lazy loading part and see what can be done but I'm unsure if it will be available in current release or on next major release. By the way, if you completely remove the select filter, does the grid load as quickly as expected? or is that not as fast as you wish? |
Beta Was this translation helpful? Give feedback.
-
@kevinburkett I pushed a new release v5.14.0 that includes |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello Ghislain!
Thanks for a great grid component and maintaining it and improving it so often!!!
For every instance of Slickgrid that I use in my React app, I iterate through every column definition and create a unique multi select drop down including all cell formatters. I have been using async collections. However, the more columns I have the slower it takes for the grid to load. My largest grid is 168 columns with 11,000 rows of data.
I would like to lazy load the drown down to build only when they are clicked on. However, I have tried multiple events that are available for filters such as onOpen, onBlur and onFocus. onOpen is the closest to working however it only works on the 2nd time that I open the drop down. it takes a second for the function to run and does not update the view even though the collection has been updated and enableCollectionWatch is true. Is there a better way to handle this? I am including my columnDefinition loop and the function that gets called to calculate the new items in the drop down.
On a separate note, is there anything in the pipeline about implementing virtual column scrolling like there is for virtual row (infinite) scrolling? Rendering only the columns in the active viewport? I am pushing the edge of the grid with this much data (2.6MB) and it would mean a complete re-architecture to move to server side sorting, grouping, filtering along with aggregations at every group level.
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions