Это было бы невозможно/трудно реализовать. Невозможно обновить кнопку редактирования в реальном времени, когда кто-то обновляет определенную запись. Самое близкое, что вы получите, это использовать WebSockets и отправлять сообщения всем пользователям, когда произойдет транзакция.
Но я уверен, что это никогда не сработает. Даже с помощью WebSockets все еще остается небольшая задержка до того, как сообщение будет обработано клиентом, и кнопка отключена. Эта небольшая задержка может быть достаточной для начала транзакции на стороне сервера.
Единственный способ, которым я могу себе представить, чтобы это работало, чтобы иметь клиенты отправить сообщение обратно на сервер, указывающего, что кнопка редактирования отключается, а затем вы можете начать транзакцию, как это:
- Пользователь нажмет кнопку Обновить
- клиент пользователя посылает WebSocket сообщение, чтобы сообщить запись обновляется
- сервер получает это сообщение и помещает запись, которая должна быть обновлена в какой-то очереди
- Все остальные клиенты получают это сообщение, а также и disabl е кнопку
- обновление Все остальные клиенты отправляют сообщение, чтобы сообщить им отключить кнопку обновления
- ожидает ответа сервера, пока все кнопки редактирования отключены, а затем обновляет запись
- запись обновляется, а сервер посылает всех клиентов а сообщение
- Все клиенты повторно включить их кнопка обновления
Однако, это просто плохая практика. Это будет дорого стоить, и это дает ложное представление о безопасности транзакций. Любой может снова включить кнопку (выполнив правильный код JavaScript), и если серверу придется ждать ответа всех клиентов, злоумышленник никогда не сможет отправить ответ (5), и это будет означать, что записи никогда не обновляются к гораздо большему количеству проблем, которые необходимо решить.