Как исключить работу в нескольких окнах?

147
21 февраля 2019, 10:40

У меня веб-приложение, в котором все добавления и изменения в БД происходят через AJAX, и, если у пользователя открыто два окна приложения и в одном из них он вносит изменения, а потом работает в другом, то возникают ошибки (например, в БД уже есть такой ID). Как можно запретить работу, если такое окно уже открыто или хотя бы как то предупредить пользователя?

Answer 1

Нужно перед сохранением на бекенде делать валидацию и в случае ошибки уведомлять UI. На фронтенде можно запретить сохранение, только в том случае если он об этом табу знает. Ка вариант: пользователь в одном окне нажимает кнопку сохранить -> сервер сохраняет запись и оповещает об этом фронт посредствам веб-сокета -> в другом окне лисенер ловит это оповещение и налаживает запрет.

Answer 2

мне удалось решить задачу с помощью функции pdo $pdo->lastInsertId(); когда в любом окне добавляю задачу в бд она получает уникальный айди и эта функция сразу возвращает последний айди , который я добавляю новой задаче на фронт энде, теперь возникает вопрос другой, можно ли установить какую то прослушку на изменение в базе данных и автоматически отобразить ту же задачу в другом окне

READ ALSO
Подключение стилей в модуле Yii2

Подключение стилей в модуле Yii2

Создал модуль и для него отдельный AppAsset, подключил стили и скрипты, но стили и скрипты не загружаются хотя если посмотреть исходный код страницы...

147
Как в woocommerce вывести товары по произвольному полю

Как в woocommerce вывести товары по произвольному полю

Столкнулась с проблемой: есть товары с одинаковым значением произвольного поляНужно вывести на странице товара, товары с таким же произвольным...

172
var_dump не выводит массив

var_dump не выводит массив

Получаю сообщению по вебсокету, здесь по одному их обрабатываюПочему если убрать первый var_dump, то второй ничего не выведет, а с первым var_dump...

210
Помогите слить массивы через php

Помогите слить массивы через php

Как с помощью php объединить эти 2 массива

142