Вопрос

Блокировка окна

2 пользователя открывают окно одного и того же элемента раздела для редактирования. Как заблокировать окно для того пользователя, который открыл позже?
Да, есть механизм блокировки полей страницы записи, вопрос когда ставить блокировку а когда снимать. Допустим, при открытии окна мы "запомнили" объект что он уже редактируется (и для всех следующих проверяем при открытии окна нет ли блокировки по данному объекту), но как отслеживать конец редактирования если пользователь не нажал кнопку "Сохранить" или кнопку "Отменить"? То есть, пользователь закрыл вкладку броузера\закрыл броузер\выключил компьютер а блокировка осталась?

Нравится

2 комментария
Лучший ответ

Добрый день, Александр.

Вы можете проверять открыта ли страница у пользователя через сообщения веб-сокета. С сервера можно отправлять какое-нибудь сообщение, на клиенте в методе-обработчике отправлять ответ. Соответственно если пользователь закрыл страницу, то сервер ответа не получит и сможет отправить уже другому пользователю(тоже по веб-сокету), что страницу можно разблокировать. 
Информацию по веб-сокета и обработке сообщений можно найти на отрытых ресурсах, а также в академии.

Никто с таким не сталкивался?
 В 1С есть аналог - пессимистическая блокировка

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

Добрый день, Александр.

Вы можете проверять открыта ли страница у пользователя через сообщения веб-сокета. С сервера можно отправлять какое-нибудь сообщение, на клиенте в методе-обработчике отправлять ответ. Соответственно если пользователь закрыл страницу, то сервер ответа не получит и сможет отправить уже другому пользователю(тоже по веб-сокету), что страницу можно разблокировать. 
Информацию по веб-сокета и обработке сообщений можно найти на отрытых ресурсах, а также в академии.

Показать все комментарии