New Component / Enhancement: Handle large data lists #1460
Labels
0 - new
New issues that need assignment.
enhancement
Issues tied to a new feature or request.
epic
Large scale issues to be broken up into sub-issues and tracked via sprints and/or project.
p - low
Issue is non core or affecting less that 10% of people using the library
Milestone
Description
Applications need to be able to provide an experience that allows a user to select from items in a CVD (Coded Value Domain) in their data. The experience needs to allow the user to see the entire list through a simple interaction, in addition to being able to filter the list of option shown by typing into the input.
This may require building a new component and/or enhancing existing components for performance issues.
User Stories
A user needs to be able to select an item from a coded value domain by either scrolling through the list of items or typing into the input to filter the list option.
Acceptance Criteria
I know I'm done when:
Helpful Details
In the Field Maps web application, when feeding the
calcite-dropdown
the dataset containing a CVD with 4,000+ items, some browsers would hang indefinitely, while others managed to become responsive again after 5 mins or soIn the research done by @crowjonah, he has found that native
select
performs best with monster amounts of options.Datalist
performs pretty well, though our 4k option example takes a couple seconds when the DOM gets generated.Doing a deferred/paged load of existing
calcite-option
elements is definitely the most robust solution. @timmorey did this work for a user picker list in another of our apps, built upon an Ember component (might be ember-power-select or ember-dropdown). The downside is logic gets pretty complex, and it can be tough to test.The current solution is to use native browser elements for the input and datalist. While this solves the performance issues and meets the requirements, the UI and UX is less than desirable and differs between each of the browsers.
History on the problem and solution can be seen here: https://github.com/ArcGIS/field-apps-web/issues/951
The text was updated successfully, but these errors were encountered: