Вот как я понимаю волшебный жук

JavaScript Vue.js

Резюме:Анализируя поведение пользователя, мы можем только выяснить, почему это происходит!

Два дня назад получил такое тревожное сообщение в BearyChat:

409?Conflict? Редко сталкиваюсь с такой ошибкой, вроде очень серьезно, боялся проверять, что получилось.

Внимательно проверьте сведения об ошибке и обнаружите, что следующая база данных запросов напрямую сообщает об ошибке, поскольку одна и та же учетная запись электронной почты используется для нескольких регистраций.

Однако не должно! Мы проверили заранее. Если почтовый ящик был зарегистрирован, он получит напоминание и не сможет зарегистрироваться. Вызывает ли другая сторона напрямую API для отправки запроса? Если так, то это еще опаснее, мы стали мишенью!

Но толку от этого нет, и IP отображается как домашний адрес, если это действительно так, используйте иностранный адрес. Подумайте об этом или внимательно проанализируйте, что пошло не так.

Посмотрев вниз, я обнаружил, что слишком много думал, и следующее поведение пользователя полностью разоблачило его!

Эти пользовательские записи записывают по умолчанию, в соответствии с обратной последовательностью, мы можем посмотреть на траекторию пользователя пользователя внизу. По поведению пользователя вы можете узнать весь процесс работы до ошибки:

  • Откройте главную страницу нашего сайта
  • Нажмите «Бесплатная пробная версия», чтобы перейти на страницу регистрации.
  • Введите адрес электронной почты
  • введите пароль
  • пароль еще раз
  • Нажмите, чтобы создать команду
  • Нажмите, чтобы создать команду
  • Команда успешно создана
  • сообщить об ошибке

Итак, вопрос: есть ли какое-либо ненормальное поведение? Ответ: Да! Он дважды нажал «Создать команду».

С моим острым обонянием я понял, что это может быть вызвано тем, что пользователь дважды быстро нажимает кнопку «создать команду». Через запись времени было установлено, что первый щелчок был на 1,86 м, а второй на 1,87 м. То есть: пользователь быстро кликает два раза за короткий промежуток времени.

Запись поведения пользователя только что фильтрует сетевой запрос, далее мы анализируем его в сочетании с сетевым запросом:

Можно обнаружить, что есть два/members/email的GET请求,并且都成功返回404,这里代码的意思是指该邮箱尚未被注册,可以被使用。 Один/members/createЕсли запрос выполнен успешно, возвращается 200, что указывает на успешное создание учетной записи. последняя ошибка/members/create409 возвращается, если запрос не выполнен.

В основном установлено, что причина ошибки вызвана тем, что пользователь быстро нажимает, чтобы создать команду.

Есть ли такая возможность, попробуйте воспроизвести и посмотрите! Итак, я открыл страницу регистрации, ввел свой адрес электронной почты и пароль и нажал, чтобы создать команду N раз со сверхбыстрой скоростью рук. Хахахаха, как и ожидалось, он был успешно воспроизведен мной!

Если ее можно успешно воспроизвести, эта ошибка в основном решена, и следующим шагом будет анализ того, как оптимизировать код, чтобы этого не произошло. Есть две идеи: 1. После того, как пользователь нажмет, сделать нажатую кнопку недействительной до тех пор, пока запрос клика не будет полностью обработан, 2. Объединить два асинхронных события проверки существования почтового ящика и создания команды в одну атомарную операцию. После всестороннего рассмотрения было принято решение использовать первый вариант. Поскольку реализация проста, в существующий код вносятся небольшие изменения.

В целом: регистрация поведения пользователя в Fundebug действительно полезна, когда нет информации о стеке или когда сообщение об ошибке непонятно. Пятизвездочный рекомендует интегрировать фронтенд-разработку в проект!

О Фундебаге

FundebugСосредоточьтесь на JavaScript, апплете WeChat, мини-игре WeChat, апплете Alipay, React Native, Node.js и мониторинге ошибок онлайн-приложений Java в режиме реального времени. С момента официального запуска Double Eleven в 2016 году Fundebug обработал в общей сложности более 1 миллиарда ошибок.Платежные клиенты включают Sunshine Insurance, Walnut Programming, Lizhi FM, Head 1:1, Weimai, Youth League Club и многие другие известные компании. . приветствую всехБесплатная пробная версия!

Уведомление об авторских правах

Пожалуйста, указывайте автора при перепечаткеFundebugИ адрес этой статьи:

bug.com/2017/09/06/…