-
-
Notifications
You must be signed in to change notification settings - Fork 7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug Report][3.1.2] Autocomplete feels laggy #16318
Comments
I don't see a delay |
I'm having similar issues with VAutocomplete, I have an items list of over 800 items with title and value props. Typing in the autocomplete to filter has a severe delay. However when I try and repdroduce the issue in Codepen, the Autocomplete filters fine with 500 objects: https://codepen.io/mgd216/pen/poZyeBa?editors=1010 I'm using Vue 3.2.45, Vuetify 3.0.6 with Nuxt 3.0.0. I'm trying to determine if Nuxt is layering some action over Autocomplete that is bogging it down. |
I'm having a huge delay with v-autocomplete too with big lists, even crashing the App for a while, after migration. Vue: 3.2.45 PS: I'm not using Nuxt. |
@KaelWD change |
I'm aware of problems with large numbers of items, trying to get #15585 in 3.1 to resolve that. @ThomasKientz didn't specify more than 10 items so idk if this is something else. |
I was having issue with 10 elements only. I have pinned the exact version of vuetify in the repro, but you are right no delay / issue with animation anymore. Menu was hiding the label as well, not the case anymore. Maybe a cache issue on my side.Do you guys want I keep the issue open for large list ?
|
Tested this with the 3.1.0 release and same results. |
I agree that there is a big issue with large autocomplete opening times. |
I'm using the last release v3.1.1 and I am having the same issue with VAutocomplete having data of around 40k items |
@KaelWD still happening with 3.1.2 (and in current nightly) : you can reproduce with : https://codepen.io/thomaskientz/pen/PoBOvNN and compare with https://codepen.io/thomaskientz/pen/xxJPNGQ V3 feels laggy. |
Even worse with |
autcomplete-v3.1.2.mov |
This is like five different problems all hitting at the same time:
|
After playing around, although I mean making a lazy loading effect #2660 for V3 could be the one that can make significant difference here as a first step quick win |
see #16318 fixes #16321 closes #16350 Co-authored-by: Yuchao <[email protected]>
Saw the update haha I did some experiments on the links sent by @gabaum10 @acnowland and it is, indeed, opening and scrolling as expected. However, when pushing things further to explore the limits on this matter, I found that after typing something and clearing back, it freezes for a couple instants before actually clear the input. As far as I went, the PR seems fine, it is definitely way better than current release, and I don't really think that autocompletes should be used on 10k arrays, however, this may be a point of attention. |
Yeah as @acnowland mentioned, it's working much better on our live example. This should be good. We'll run the nightly for now as we finish the migration and let you know if we see anything weird. Do you guys know when this fix will get pushed out? |
If anyone else is having problems with installation, make sure to
It will have a massive scrollbar when it's working correctly too, the extra space is just reserved by a single element instead of hundreds.
@SkyaTura Do you have some code and exact steps to take to reproduce this?
@gabaum10 When I'm satisfied that it isn't significantly broken. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as resolved.
This comment was marked as resolved.
@SkyaTura Fixed, filtering should be more than 30x faster now for 50k items, 240ms -> 6.5ms. Even 500k items takes under 200ms. |
@KaelWD so it is working better but not great in our application.. now I cant replicate it though but we are using the PR build b/c it load smuch quicker, but the issue is on scroll. The items load quick initially but as we scroll there is a delay from when you scroll and when they are rendered. I was doing some performance testing and unsure if related, but if you compare the old in v2 vs v3 we can see that in the PR version it is literally firing off THOUSANDS of event listeners as you scroll. While in the old it fires only 2 each time you scroll. I imagine this can lead to some performance issues. Not sure if fixed already or not. v2 was taken from our prod application so there is other stuff going on there, v3 was recorded though in the playground on the pr17265 branch, but it can be noted that both contain the same data points, its taken from the example we posted above using the PR build |
any updated on my concern? its an awful lot of listeners being triggered on scroll with the new implementation vs the old. We are also seeing some kind of weird interaction with building our project with that nightly PR included with this fix. For w/e reason on a local dev server we see the full list of items being rendered as you scroll, but after we deploy it only renders 30-50% of the items. I can inspect the autocomplete after deploy and see the :items have been passed in, and you can even search for the hidden items and they appear, but as you scroll they do not render.. I cannot for the life of me replicate on a playground though and also not sure if its build related on our side or something from vuetify side tbf.
Thats the build we are using which I think is correct. I realize w/o a replication its tough, but figured it should be brought to attention |
This is the second test again but in a prod build, seems to collect partway through scrolling and doesn't retain anything after the manual GC:
Do you mean this? Kooha-2023-06-15-16-24-24.mp4That's expected, scrolling runs on a separate thread and if you scroll too fast the main thread can't keep up. We could render like three extra pages of items just in case but that's a lot of overhead. |
It might be possible to shift the window based on scroll velocity though. |
Thanks for all of the investigation @KaelWD , yea the description makes sense, I wonder if i see alot more since I am using a trackpad to scroll? Not sure, but overall you are right, it doesn't seem to degrade the actual performance. Also, amazing that you happened to reproduce the bug in prod where its not capturing the right scrollable window. Honestly once that is resolved I think everything should be good. |
Such as increasing the buffer on either side depending upon how fast the user is scrolling? |
Hey is there any way we can get a timeline update for this? It's one of the last major pieces we're waiting for from the v2 -> v3 migration. We also would like to make use of the two patches the PR nightly is behind for this as the fixes within address some of the other issues we've had to work around. |
This is the timeline: #17265 |
@johnleider is there any way we can get an up to date nightly for that PR published? The one we've been testing is weeks old. There is absolutely no way we can wait around until September for 3.4 to roll out the upgrade for this fix. As is, all additional development is currently on hold while we iron out the remaining Vuetify 3 issues, this being one of the biggest ones. |
It's marked for v3.4 but it's based off of master. Once @KaelWD collects enough feedback to feel comfortable with shipping it, we'll merge and release as part of a regular weekly patch. |
Great, thanks! As soon as we can get an updated nightly build off that PR to test the other reported issue it'll probably be good on our side. But we're waiting to confirm. |
@gabaum10 I've published another one with the latest changes |
@KaelWD thank you for you work, now it's much better. Unfortunately, virtual scroll doesn't work in production for some reason. After |
This is the same issue we were hoping that was fixed by the changes in the PR. I guess it's not though. I'm not entirely sure how to replicate it, but we will work on trying to come up with an example in the playground. |
@KaelWD FYI, I'm not seeing the issue reported above. I suspect they are still using the old version of the build. As far as I can tell, all our issues are now resolved. This is great. Thanks for your work on this stuff! |
Thank you everyone for your patience on getting this tested proper. It will be in your hands very soon. |
Yea this looks great now! Thank you all! 🙏🏻 |
@gabaum10 the build I'm using is |
@Rusinas yes. |
Yep, it works now, thank you so much! |
Environment
Vuetify Version: 3.0.5
Last working version: 2.6.13
Vue Version: 3.2.45
Browsers: Chrome 108.0.0.0
OS: Mac OS 10.15.7
Steps to reproduce
Use a VAutocomplete.
Expected Behavior
When user focus, list menu to appear instantly, as with Vuetify 2.
Actual Behavior
When user focus, list menu appear with a delay (100-200ms ?).
Reproduction Link
https://codepen.io/thomaskientz/pen/vYaOgwO?editors=1010
Other comments
Vuetify 2 exemple : https://codepen.io/thomaskientz/pen/dyjoNEb?editors=101
I think its a bug of the animation. With a VSelect it's fine, the animation is too harsh though imo.
Also, looks like its fine when VAutocomplete is instantiated with a value.
The text was updated successfully, but these errors were encountered: