Инструменты пользователя

Инструменты сайта


1c:база:опасность_использования_модальных_окон

Это старая версия документа!


Опасность использования модальных окон

Суть проблемы

При использовании модальных окон работа программы останавливается до того момента, пока пользователь не сделает выбор. Неправильное использование может привести к следующим последствиям:

  • Модальное окно блокирует все остальные окна. Если в процессе выбора пользователю понадобится дополнительная информация(например из отчетов), он не сможет ее получить, так как модальное окно блокирует все остальные окна.
  • Остановка большого объема вычислений. Если модальное окно будет вызвано когда система производит большой набор "тяжелых" вычислений, ее работа остановится до того момента как пользователь сделает выбор. Бывает, что пользователь отходит от компьютера или долгие вычисления оставляют на ночь.
  • Блокирование таблиц базы данных. Намного хуже когда система остановилась ожидая выбора пользователя в момент записи в транзакции. Система будет держать заблокированными таблицы базы, до тех пор пока пользователь не сделает выбор. Что по существу остановит работу других пользователей. Даже если пользователь будет делать выбор моментально, такой подход может сильно замедлить проведение документов(особенно групповое). Вызов модального окна в процессе проведения документов считается грубейшей ошибкой.

Рекомендации

Несмотря на вышесказанное, совсем отказаться от модальных окон не всегда представляется возможным. Вот возможные варианты, позволяющие избежать описанных выше проблем:

  • Не использовать модальные окна, а получать всю информацию от пользователя с формы которая запускает обработку, когда это возможно.
  • Вызывать модальное до начала работы вычислений\записи в базу данных. Получив сразу всю необходимую информацию, можно реализовать алгоритм который не будет требовать остановок в своей работе.
Только авторизованные участники могут оставлять комментарии.
1c/база/опасность_использования_модальных_окон.1402881450.txt.gz · Последнее изменение: 2014/06/16 05:17 — admin