Ssylka

Как правильно реализовать блокировку документа при совместной работе?

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

Использование поллинга, хоть и самое очевидное решение, но с множеством недостатков. Проблемы так же возникают с долгоживущими соединениями, поскольку PHP сервер обрывает их через 30 секунд, что делает невозможным применение long polling и Server-Sent Events.

Альтернативным решением стали события на блокировку и разблокировку формы, отправляемые на сервер при входе и выходе пользователя. Однако эта стратегия также столкнулась с трудностями при обработке закрытия окна браузера, поскольку событие onbeforeunload не срабатывало при запросе о сохранении изменений. После замены onbeforeunload на unload, возникла проблема с браузером Edge, где событие перестало срабатывать.

Финальным решением стал поллинг с отправкой событий о блокировке формы через заданный интервал. Блокировка снимается при выходе пользователя или по истечении таймаута, если запросы перестают поступать. Важно отметить, что при переходе на другую страницу внутри приложения интервал так же сбрасывается.


Новое на сайте

15305Может ли вселенная вращаться раз в 500 миллиардов лет? 15304Уязвимость в маршрутизаторах ASUS AiCloud: обновления прошивки обязательны 15303Жизнь с нарциссическим расстройством: взгляд изнутри 15302Почему лауреат Bafta прячет свою награду от маленькой дочери? 15301Как новое световое оформление изменит интерьер церкви? 15300Вирусный успех Vicky Ball — почему она не бросает работу преподавателя? 15299Темная галактика у млечного пути: открытие загадочного газового объекта 15298Новый цвет: "оло" и его открытие 15297Как музыкальная безопасность завоевывает молодежь: новый альбом CPSC 15296Влияние соцсетей и инфлюенсеров усиливает женоненавистничество в школах 15295Боль при установке вмс: мифы, факты и новые решения 15294Где зародился свободный бит: история рейв-культуры восточной Англии 15293Есть ли шанс у новых авторов попасть в книжные магазины? 15292Действительно ли туристический налог укрепит экономику Уэльса?