#sql-server #asp.net-mvc #ajax
#sql-server #asp.net-mvc #ajax
Вопрос:
Я планирую создать сетку (Telerik MVC), в которой каждая строка имеет кнопку. По щелчку логическое значение будет обновлено в БД через ajax, а функция обратного вызова установит изображение «галочки» в одной из ячеек строки. Пользователь должен иметь возможность быстро нажимать на несколько строк, и я пытаюсь предвидеть любые проблемы, если он это сделает. Существует ли вероятность конфликта либо в DOM, либо на сервере базы данных?
Комментарии:
1. Попробуйте и посмотрите, есть ли у вас какие-либо проблемы…
Ответ №1:
Чтобы убедиться, что пользовательский интерфейс не страдает, вот что я бы сделал:
- Создайте массив объектов для обновления
- Каждый раз, когда нажимается флажок, добавляйте / обновляйте его в / в массив со значением — это гарантирует, что несколько нажатий на один и тот же флажок приведут только к одному вызову AJAX
- После добавления флажка в array запустите процесс обновления AJAX
- В ответе AJAX проверьте, есть ли в массиве какие-либо элементы, подлежащие обработке, и повторите
Ответ №2:
Вероятно, самым важным фактором будет то, насколько быстро ваш сервер обрабатывает запрос Ajax. Если это займет некоторое время, то пользовательский интерфейс будет отстой.
Возможно, вы могли бы улучшить это, добавив ключи к переменной и просто периодически отправляя на сервер, например:
- Пользователь щелкает элемент
- Добавить ключ в массив
- Используйте window.setTimeout(), чтобы запустить функцию отправки за x миллисекунд
- Пользователь нажимает на другой элемент
- Добавить ключ в массив
- Тайм-аут уже установлен, поэтому больше ничего не делает
- Время ожидания истекает, код запускается, отправляет оба ключа на сервер в одном запросе
- Пользователь щелкает элемент
- Добавить ключ в массив
- Используйте window.setTimeout(), чтобы запустить функцию отправки за x миллисекунд
и т.д.