https://developer.mozilla.org/en-US/docs/Web/API/Web_Locks_API Реализация механизма блокировок в браузере. Один из полезных примеров: // Запрашиваем блокировку ресурса await navigator.locks.request("my_resource", async (lock) => { // Блокировка получена. Этот код выполнится только в одной вкладке одновременно. await updateDatabase(); await syncWithServer(); // По завершении функции блокировка автоматически снимется. });

Таким образом, блокировки имеет смысл вешать на действительно тяжеловесные операции или те, в которых параллельное выполнение может что-то сломать. А также не забываем: не доверяем ничему, до чего может добраться клиентское приложение. Лучше блокировки делать на бэкенде.