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

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


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

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
1c:база:опасность_использования_модальных_окон [2014/06/16 05:17]
admin создано
1c:база:опасность_использования_модальных_окон [2014/12/24 13:50] (текущий)
admin [добавил описание разницы между блокирующими и модальными вызовами]
Строка 5: Строка 5:
   * **Остановка большого объема вычислений.** Если модальное окно будет вызвано когда система производит большой набор "тяжелых" вычислений, ее работа остановится до того момента как пользователь сделает выбор. Бывает, что пользователь отходит от компьютера или долгие вычисления оставляют на ночь.   * **Остановка большого объема вычислений.** Если модальное окно будет вызвано когда система производит большой набор "тяжелых" вычислений, ее работа остановится до того момента как пользователь сделает выбор. Бывает, что пользователь отходит от компьютера или долгие вычисления оставляют на ночь.
   * **Блокирование таблиц базы данных.** Намного хуже когда система остановилась ожидая выбора пользователя в момент записи в транзакции. Система будет держать заблокированными таблицы базы, до тех пор пока пользователь не сделает выбор. Что по существу остановит работу других пользователей. Даже если пользователь будет делать выбор моментально, такой подход может сильно замедлить проведение документов(особенно групповое). Вызов модального окна в процессе проведения документов считается грубейшей ошибкой.   * **Блокирование таблиц базы данных.** Намного хуже когда система остановилась ожидая выбора пользователя в момент записи в транзакции. Система будет держать заблокированными таблицы базы, до тех пор пока пользователь не сделает выбор. Что по существу остановит работу других пользователей. Даже если пользователь будет делать выбор моментально, такой подход может сильно замедлить проведение документов(особенно групповое). Вызов модального окна в процессе проведения документов считается грубейшей ошибкой.
 +  * **Сложности при работе мобильного и web клиента.** Модальные окна в web клиенте реализованы всплывающими окнами, многие браузеры такие окна блокируют по умолчанию, не задавая вопросов пользователю. В мобильных браузерах, эта функция вообще не работает. Поэтому в последних релизах платформы 1С советует отказаться от модальных окон в пользу "блокирующих диалоговых окон" реализованных с помощью методов ''ПоказатьВопрос'' и ''СообщениеПользователю''. Открытие формы модально предполагается заменить на открытие формы в "блокирующем режиме". Разница между "блокирующими" и "модальными" методами заключается в том, что блокирующие методы не останавливают работу системы до выбора пользователя, а реакция на действие пользователя происходит в отдельном обработчике.[[http://its.1c.ru/docs/v8nonmodal|Более подробно об отказе от модальности.]] Сама реализация "блокирующих" методов требует реализации другой логики, что вызывает [[http://infostart.ru/public/302910/|критику со стороны сообщества]].
 ===== Рекомендации ===== ===== Рекомендации =====
 Несмотря на вышесказанное, совсем отказаться от модальных окон не всегда представляется  возможным. Вот возможные варианты, позволяющие избежать описанных выше проблем: Несмотря на вышесказанное, совсем отказаться от модальных окон не всегда представляется  возможным. Вот возможные варианты, позволяющие избежать описанных выше проблем:
   * Не использовать модальные окна, а получать всю информацию от пользователя с формы которая запускает обработку, когда это возможно.    * Не использовать модальные окна, а получать всю информацию от пользователя с формы которая запускает обработку, когда это возможно. 
   * Вызывать модальное до начала работы вычислений\записи в базу данных. Получив сразу всю необходимую информацию, можно реализовать алгоритм который не будет требовать остановок в своей работе.   * Вызывать модальное до начала работы вычислений\записи в базу данных. Получив сразу всю необходимую информацию, можно реализовать алгоритм который не будет требовать остановок в своей работе.
1c/база/опасность_использования_модальных_окон.1402881450.txt.gz · Последнее изменение: 2014/06/16 05:17 — admin