Вопрос

Обмен сообщениями с деталью которая расположена на соседней закладке от основной.

Добрый день!

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

Спасибо!

Нравится

10 комментариев

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

На самом деле речь идет об одной странице браузера. Имеется ввиду основная закладка "Данные о продаже" и соседняя - "Продукты". Ввожу скидку/наценку по продаже и хочу передать эту информацию в деталь для пересчета, но пока не переключишься на закладку "Продукты" сообщение не передается. Видимо это и правильно, но хотелось бы чтобы данные пересчитались, не зависимо от того активировали вкладку или нет. Может есть какое то более правильное решение?

Если деталь ещё не загружена, то можно внести изменения в данных на уровне её объекта и при загрузке они уже будут учтены. Иногда наоборот, удобно, что деталь ещё не загружена. Например, добавили к сущности задачу через миникарточку, переключились на нужную вкладку, она загрузилась  и задача на ней появилась. А если вкладка уже загружена, то нет, нужно заново открывать всю запись.

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

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

В том то и дело что я еще не знаю как можно это сделать. 

Что мешает в схеме одной детали писать данные в ESQ объекта другой детали? Данные попадут в базу и при открытии первый раз второй детали оттуда подтянутся. А если нужно, чтобы и не при первом открытии данные были, можете скомбинировать с Вашей изначальной логикой.

Я вас не понимаю, Александр. Проблемы писать в базу я не вижу. Я просто хотел узнать механизм принудительной загрузки модуля (схемы) детали, которая находится на соседней вкладке от вкладки "Данные продажи". Но видимо не узнаю.

Соседняя деталь загружается не принудительно, а в момент перехода в неё. Если хотите переделать стандартную логику инициализации деталей, смотрите на DefaultTabName и работу с ним в BasePageV2.

Спасибо, Александр!

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