Sobes.tech

Frontend

El usuario escribe rápidamente en el campo de búsqueda. ¿Cuál es la diferencia entre `debounce`, `throttle` y `AbortController` desde la perspectiva de UX y carga de red/backend? ¿Cuál es mejor para búsqueda en vivo?

122

Imagina una cola de tareas macro con cinco llamadas a `setTimeout`, y microtareas que añaden infinitamente nuevas microtareas, por ejemplo mediante `Promise.resolve().then()` de forma recursiva. ¿Qué sucederá con la interfaz y estas cinco llamadas a timeout se ejecutarán alguna vez? ¿Por qué?

118

Implementa una función `debounce` que soporte una invocación inmediata al inicio de una serie de eventos (`leading`), una invocación al final de la serie por defecto, y un método `debounceFunc.cancel()` para cancelar la llamada programada.

118