Возможные проблемы из-за повторяющихся вызовов ajax?

#sql-server #asp.net-mvc #ajax

#sql-server #asp.net-mvc #ajax

Вопрос:

Я планирую создать сетку (Telerik MVC), в которой каждая строка имеет кнопку. По щелчку логическое значение будет обновлено в БД через ajax, а функция обратного вызова установит изображение «галочки» в одной из ячеек строки. Пользователь должен иметь возможность быстро нажимать на несколько строк, и я пытаюсь предвидеть любые проблемы, если он это сделает. Существует ли вероятность конфликта либо в DOM, либо на сервере базы данных?

Комментарии:

1. Попробуйте и посмотрите, есть ли у вас какие-либо проблемы…

Ответ №1:

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

  • Создайте массив объектов для обновления
  • Каждый раз, когда нажимается флажок, добавляйте / обновляйте его в / в массив со значением — это гарантирует, что несколько нажатий на один и тот же флажок приведут только к одному вызову AJAX
  • После добавления флажка в array запустите процесс обновления AJAX
  • В ответе AJAX проверьте, есть ли в массиве какие-либо элементы, подлежащие обработке, и повторите

Ответ №2:

Вероятно, самым важным фактором будет то, насколько быстро ваш сервер обрабатывает запрос Ajax. Если это займет некоторое время, то пользовательский интерфейс будет отстой.

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

  1. Пользователь щелкает элемент
    • Добавить ключ в массив
    • Используйте window.setTimeout(), чтобы запустить функцию отправки за x миллисекунд
  2. Пользователь нажимает на другой элемент
    • Добавить ключ в массив
    • Тайм-аут уже установлен, поэтому больше ничего не делает
  3. Время ожидания истекает, код запускается, отправляет оба ключа на сервер в одном запросе
  4. Пользователь щелкает элемент
    • Добавить ключ в массив
    • Используйте window.setTimeout(), чтобы запустить функцию отправки за x миллисекунд

и т.д.