Есть ли альтернатива синхронному xhr, которая предоставляет возможность ставить в очередь встроенную обработку пользовательского ввода? - PullRequest
0 голосов
/ 31 октября 2019

В течение почти десятилетия я видел предупреждения о том, что использование синхронного XHR (XMLHttpRequest) устарело, и даже предлагал начинать генерировать ошибки, когда они совершаются. Я понимаю, почему людям они не нравятся (они часто приводят к плохому UX [User Experience]), и я согласен, что подавляющее большинство запросов должно быть асинхронным, но, насколько я могу судить, они предоставляют полезную функцию UX, которой нетиз предложенных альтернатив предусматривают: они ставят в очередь пользовательский ввод.

Если я часто использую интерфейс и знаю, чего ожидать, я не жду визуальных подсказок для продолжения ввода, например, если я использую Windows иЯ хочу открыть Chrome, я буду печатать [WindowsKey]Chr[Enter]. Я не жду, когда появится меню «Пуск», потому что я знаю, что весь мой ввод будет поставлен в очередь и воспроизведен.

Я нахожу это поведение во всех ОС (операционных системах) и UI (пользовательских интерфейсах). Я взаимодействую, и, тем не менее, он отсутствует в любом веб-интерфейсе, который я использую. Я запускаю новое электронное письмо в Thunderbird и начинаю печатать без проблем, но если я делаю то же самое в Gmail, я обнаруживаю, что первые несколько символов адреса электронной почты отсутствуют, потому что диалоговое окно не открылось, когда я начал печатать,Это может показаться плохим UX, вызванным асинхронной обработкой ввода.

Распространенность этой проблемы не вселяет надежду, но есть ли рекомендуемый механизм для решения этой проблемы?

Два из них, о которых я могу подумать, не очень правдоподобны за пределами ограниченного набора вариантов использования:

  1. Переместить все на клиента. По сути, это означает полное исключение запросов путем переноса всей логики изменений пользовательского интерфейса на клиента, чтобы они могли выполняться синхронно.
  2. Реализация очереди событий javascript и попытка переопределить все нативное поведение пользовательского ввода. Я думаю, что это может быть болезненно, но выполнимо для случаев использования, которые я дал, но кошмар, если я должен начать рассматривать, например, специальные сочетания клавиш для ОС.
...