-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
URLInput: Use debounce() instead of throttle() #26529
Conversation
Size Change: -2 B (0%) Total Size: 1.2 MB
ℹ️ View Unchanged
|
Wait until the user finishes typing before sending an AJAX request. This ensures that there isn't an AJAX request sent every 200 ms while the user is typing.
c3373ee
to
8f5dbd5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This works as described, send 4 requests for 22 typed chars 👍
Wait until the user finishes typing before sending an AJAX request. This ensures that there isn't an AJAX request sent every 200 ms while the user is typing.
* Refactor BlockMover to use React hooks (#24774) * Add drag handle to block toolbar (#24852) * Add drag handle to block mover component * Switch draggable chip to reflect toolbar layout * Use drag cursor * Hide drag handle on mobile or in top toolbar mode * Adjust handle and structure. * Size the switcher. * Adjust mover. * Update icon for handle. * Update movers buttons. * Fix groups. * Focus for switcher. * Handle focus. * Fix top toolbar. * Popover fix. * Fix spacing issue. * Harmonize spacing. * Try small independen transition for up / down. * Reduce motion. * use dragHandle icon in draggable chip * Make draggable chip use same icon as toolbar * Revert "Make draggable chip use same icon as toolbar" This reverts commit d031006. * Revert offset change and ensure cursor does not overlap chip block info * Update snapshots to reflect chevron icon change Co-authored-by: jasmussen <joen@automattic.com> Co-authored-by: Matías Ventura <mv@matiasventura.com> * Fix issue with single block. (#25107) * Remove animation from mover buttons. (#25728) The animation was intended to better convey direction, and were added as an experiment. It doesn't seem successful, so let's remove it again. * add label in drag and drop button (#25606) * Change toolbar drag remove labels (#25614) * Refactor toolabar drag+remove labels * fix tests * fixes #24845 (#24847) * Fix: Post schedule label showing wrong time if site and user timezones did not match (#26212) * URLInput: Use debounce() instead of throttle() (#26529) Wait until the user finishes typing before sending an AJAX request. This ensures that there isn't an AJAX request sent every 200 ms while the user is typing. * Update browserlist dependency (#24756) * Fix composer test failures due to invalid lock (#26472) * Update package-lock.json * Set dev environment to use WordPress 5.5 Co-authored-by: Chris Alexander <cmalex@gmail.com> Co-authored-by: Daniel Richards <daniel.richards@automattic.com> Co-authored-by: jasmussen <joen@automattic.com> Co-authored-by: Matías Ventura <mv@matiasventura.com> Co-authored-by: Joen A <1204802+jasmussen@users.noreply.github.com> Co-authored-by: Nik Tsekouras <ntsekouras@outlook.com> Co-authored-by: Ari Stathopoulos <aristath@gmail.com> Co-authored-by: Jorge Costa <jorge.costa@automattic.com> Co-authored-by: Riad Benguella <benguella@gmail.com> Co-authored-by: Marcus Kazmierczak <marcus@mkaz.com>
Curious if there was any rationale initially for throttling this behaviour? |
It was |
Wait until the user finishes typing before sending an AJAX request. This ensures that there isn't an AJAX request sent every 200 ms while the user is typing.
No big thoughts here, I guess my original thinking is that if the user continuously types, we should at least show results from time to time. arguable obviously. |
* nest content styles in container for higher specificity (#26487) * Reusable Blocks: Make the number retrieved from the API unlimited (#26486) * Make the number of reusable blocks returned from the API unlimited This is to fix #26352. Having no limit seems like it could be risky, but there are a number of other places in the codebase where all entities are returned in one call to the API, including categories, which could return a similar amount of data to this. * Remove unnecessary quotes to fix lint error. * Fix block inserter WSOD when an empty reusable block exists (#26484) * Latest Posts: Bring back classname on post list (#26477) * [Heading Block] Fix double alignment controls in toolbar (#26492) * fix heading alignments * add proper supports in deprecation * update all previous deprecations * regenerate fixtures for heading * change migration call * remove previous className + revert saves * Revert "regenerate fixtures for heading" This reverts commit 27af8c3. * change fixtures * create new fixtures + fix deprecation save * address review feedback * URLInput: Use debounce() instead of throttle() (#26529) Wait until the user finishes typing before sending an AJAX request. This ensures that there isn't an AJAX request sent every 200 ms while the user is typing. * Fix single column block display for smaller screens. (#26438) If there is only one column, don't force a 50% flex-basis for small screens. * Fix incorrectly pluralised strings (#26565) * Change block mover label i18n * Update remove block i18n * Ensure footer remains position fixed when navigating regions (#26533) * Update package-lock file to ensure static analysis task passes (#26528) * Removes extra fullstop (#26586) Co-authored-by: Addison Stavlo <Stavz01@gmail.com> Co-authored-by: Paul Bunkham <paul@dobit.co.uk> Co-authored-by: Noah Allen <noahtallen@gmail.com> Co-authored-by: Kelly Dwan <ryelle@users.noreply.github.com> Co-authored-by: Nik Tsekouras <ntsekouras@outlook.com> Co-authored-by: Robert Anderson <robert@noisysocks.com> Co-authored-by: Aaron D. Campbell <aaron@AaronDCampbell.com> Co-authored-by: Daniel Richards <daniel.richards@automattic.com> Co-authored-by: Tammie Lister <tammie@automattic.com>
Fixes #26358.
Wait until the user finishes or pauses typing before sending an AJAX request. This ensures that there isn't an AJAX request sent every 200 ms while the user is typing.
https://css-tricks.com/debouncing-throttling-explained-examples/
Testing