Вступить в клуб →
средняявопросАрхитектура и состояние экрана

В поиске остаются результаты по недопечатанному запросу

Экран поиска отправляет запрос на каждое изменение текста в поле. Пользователь быстро набирает «iphone». В логах видно последовательность запросов: «i», «ip», «iph», «ipho», «iphon», «iphone».

Время от времени на экране остаётся выдача по «iph», хотя в поле уже «iphone».

Что происходит и как это чинить?

  • Нужно кешировать результаты по каждому префиксу запроса — тогда порядок ответов перестанет иметь значение, ведь выдача возьмётся из кеша по текущему тексту поля
  • Сервер отвечает медленно: нужно увеличить таймаут и повторять запросы, которые не успели, тогда выдача по последнему запросу дойдёт до экрана
  • Гонку иначе не победить: надо убрать поиск по вводу и искать только по нажатию кнопки «Найти»
  • Ответы приходят не в том порядке, в каком уходили запросы, и поздний ответ на устаревший запрос перезаписывает актуальный — предыдущий запрос надо отменять

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела