2010-03-01 3 views
0

Скажем, у нас есть запрос к базе данных, который занимает 20 секунд для запуска (пользователь запускает его, нажав кнопку на странице HTML в браузере). Пользователь получает нетерпение и только после 10 секунд он обновляет свой браузер, только для запуска нового запроса.Остановка множественного доступа к базе данных при обновлении браузера пользователя

Как остановить первый запрос на запуск базы данных (или предотвратить запуск второго из них)?

Благодаря

ответ

1
  • Если это с помощью Ajax, отключить кнопку , запускающий запрос до после того, как запрос закончен.

  • Когда использование делает запрос, установите в поле пользователя флаг , а затем запустите запрос в отдельном потоке. Если они попытаются отправить его снова, отметьте флаг и просто проигнорируйте запрос . Когда запрос завершается, сбросьте флаг. Пока выполняется запрос , браузер может опросить сервер , ожидающий результатов.

1

Я не эксперт, но вы можете сохранить время он последний поданный запрос на его сессии. Если тот же пользовательский файл запрашивает другой запрос с 20 секундами, просто игнорируйте его.

Это не очень грубая сила.

3

Первым шагом было бы оптимизировать этот запрос, 20 секунд слишком долго для большинства запросов. Пользователи обычно не будут терпеть такую ​​плохую работу.

Смежные вопросы