Сохранение данных формы в виде пользовательских типов (React / Postgres) - PullRequest
0 голосов
/ 01 февраля 2019

Учитывая простое текстовое поле для ответа на вопрос, как бы вы сохранили ответы при вводе пользователем?Предполагая, что ответ отклонен.

Используя несколько наивный пример обработчика onChange и сохраняя ответы с помощью API в этом onChange, я столкнулся с двумя проблемами:

  1. Отправляет то, что кажетсяслишком много запросов на исправление от клиента к API, поскольку каждый раз при изменении ответа текстового поля.
  2. Если вы используете postgres upsert или создаете свой собственный, то второй запрос, сделанный обработчиком onChange, может не увидеть первый, еслипользователь быстро печатает, создавая дубликаты записей для этого текстового поля (два ответа на один вопрос)
  3. Мне нужно выполнить запросы заранее, чтобы получить необходимые значения отношений перед обновлением, поэтому время ожидания HTTP довольно велико.Исправление это сейчас, но, похоже, не решает две вышеуказанные проблемы.

Я думал о сохранении только после того, как пользователь нажимает пробел, но это кажется хакерским.Обычно, конечно, я бы сохранил после нажатия кнопки «Отправить», но в этом случае это должен быть тип пользователя.

Есть предложения / комментарии?Приветствия.

РЕДАКТИРОВАТЬ:

Также попытался сохранить в onBlur .. Но это не всегда вызывается в зависимости от того, где пользователь нажимает.

1 Ответ

0 голосов
/ 01 февраля 2019

Нужно ли исправлять данные для каждого нажатия клавиши или вы можете использовать задержку?

Например ...

Пользователь начинает вводить: Зарегистрировать событиеустановите тайм-аут, скажем, на 3 секунды

Если пользователь продолжает набирать: сбросить этот тайм-аут обратно на полные 3 с

Если пользователь приостановит набор + 3 спередает: исправляет данные с новым значением

Когда пользователь возобновляет ввод: устанавливает другое время ожидания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...