Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

ngOptions binding for select causes poor performance in IE11 with large data #12563

Closed
ndicenso opened this issue Aug 12, 2015 · 3 comments
Closed

Comments

@ndicenso
Copy link

Overview of the Issue
Data using 1000s of items cause significant performance issues when binding to select with ngOptions in IE 11.

Motivation for or Use Case
Working on a production site, I notice the number of available items for a given dropdown was over 2000. User's were complaining of poor performance in IE 11, Edge, etc. I am currently putting in a new set of filters to reduce the number of results but wanted to point out this performance regression from Angular 1.3 to 1.4. There is a slightly noticeable difference on other browsers, as well, but not nearly as significant.

Angular Version
(1.4.0 - 1.4.3) This appears to be a regression issue as 1.3.17 performs much faster

Browsers and Operating System
Tested and confirmed on windows 7 with IE 11, and Windows 10 with Edge
Performs efficiently with current versions of Chrome, Firefox, Safari

Reproduce the Error
Related Plunker
I have set up a plunk with a data-set of 2000 items. You can swap the angular versions from the commented script tag to see the regression in IE as mentioned above.

Related Issues
Could not find a bug on this item

Suggest a Fix
Consider reverting ngOption binding logic back to 1.3.x until performance issues can be resolved with 1.4.x

@Narretz
Copy link
Contributor

Narretz commented Aug 12, 2015

This is a duplicate of #12076 The issue mentions a possible change to the code that would speed up the rendering. If you want to take a stab at it, you can open a PR with the change. However, from a UX point of view, selects with huge numbers of options are pretty bad anyway.

@ndicenso
Copy link
Author

Understood about the duplicate issue. With regards to the UX point of view, the point was not to indicate the merit of selects with large amounts of data. It was to indicate that in fact a significant regression had occurred from a previous release. I had indicated in the "Motivation for Use Case" section that I was already refactoring to reduce the number of options.

@Narretz
Copy link
Contributor

Narretz commented Aug 12, 2015

Sorry, I didn't see it's a regression, I just went into duplicate mode. I'll label the other issue as regression. We can't revert to 1.3 logic because we fixed some important bugs with the refactor.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants