#15. Функции Debounce и Throttle в JavaScript (пишем с нуля и разбираемся как работают)
Вставка
- Опубліковано 2 сер 2024
- В этом видео мы разберемся для чего нужны и как работают функции Debounce и Throttle в JavaScript.
Мы напишем с нуля обе функции и отобразим результат работы Debounce и Throttle на нашей странице.
Файлы для работы: t.me/stackdevru/78
Мои Курсы:
Все мои курсы (+ исходные файлы): stackdev.ru
JavaScript для начинающих: stackdev.ru/courses/javascript
Подписывайся на соц сети:
Telegram: t.me/stackdevru
VK: vasilymur
Instagram: / vm_online
Мой блог о веб-разработке: stackdev.blog
Василий, спасибо огромное Вам за объяснения! Всё очень понятно и доступно! Одно из лучших объяснений, которые я смотрела)
Полезное видео про практическое применение замыканий.
Спасибо!
Супер презентация материала!
Хороший контент, но стоит упомянуть, что реализация декоратора debounce возможна благодаря замыканию, т.к. айдишник должно быть всегда постоянным,
Омагад, использование замыканий 😄
Здравствуйте, я сейчас изучаю реакт, и увидел вашы видео и плейлисты уроков по реакт, но им уже 3 года, стоит ли по ним учиться или информация там уже устарела? Буду благодарен за ответ
Частая задача на собеседовании
Throttle не будет работать. И не работает. Я проверила. Если закончить писать в тот момент, пока активно isPaused, последние введенные данные так никогда и не будут им обнаружены, потому что все калбэки выполнены, а новых уже никто не посылал.
Я, конечно, в JS не то что даже плаваю, скорее, чуть ли не тону, но вот мой вариант: запоминать последние введенные данные (например last_args = [...args]) на КАЖДОМ вызове калбэка. А в setTimeout помимо присваивания переменной присобачить вызов callback с как раз таки last_args
функция дебаунс слегонца некорректно реализована. точнее не сама функция, а применение концепции не до конца корректное. корректно это будет работать только в синхронном коде. в асинхронном нет гарантии, что отправленные запросы вернуться в том же порядке.
Не совсем понятно о чем вы, Js в принципе синхронный язык, и код здесь синхронный, а отправленные куда то запросы к примеру на сервер )) всегда могут возвращаться не в том же порядке что мы ожидаем. Это же асинхронная операция, для этого существует abortController. Это совсем не проблема функции debounce.
@@igork5095писать вижу умеешь, а читать ? там же написано - "точнее не сама функция, а применение концепции не до конца корректное".