Как организовать веб-приложение в нескольких окнах (вкладках) браузера?
Здравствуйте.
Подскажите, пожалуйста, кто сталкивался.
Где что почитать на тему организации веб-приложения в нескольких окнах (вкладках) браузера?
По замыслу:
- существует основное окно (вкладка) приложения;
- при необходимости вынести отдельные визуальные компоненты (таблицы, графики и т.п.) веб-приложения на другой экран, открываются новые окна (вкладки), на них перемещаются компоненты с имеемым содержимым;
- все открытые окна обращаются к одним наборам данных основного окна.
Спасибо.
Попробуйте сделать так, чтобы все дополнительные вкладки открывались из основной (можно через ссылки с target="_blank"), тогда к основной вкладке можно будет скриптами обращаться через window.opener. Страницы, открываемые на дополнительных вкладках, должны быть на том же домене, что и страница из основной вкладки.
Да, дополнительные открываю из основной. Взаимные ссылки объектов window использую. Элементы между окнами перемещаю. Но это только начало.
Уперся в необходимость спроектировать организацию взаимодействия окон по вопросам: стилей, скриптов, состояний (например, визуальный компонент в основном окне был draggable через jquery ui, а будучи перенесенным в другое окно - уже нет), событий (типа галочка стоит в меню на основном окне, а связанные элемент или действия - в другом) и данных.
Вот тут и запросил помощь зала, чтобы хоть на что-то опереться кроме собственных соображений. Вдруг есть тривиальное решение.
moem, если индексируемость поисковиками не критична, то можно попробовать использовать фреймы, по принципу 1 компонент = 1 ссылка, открытая внутри фрейма.
Индексируемость не нужна.
Каждый визуальный компонент есть три файла: html, css js. Можно открывать по отдельности и связывать с данными независимо от приложения.
Но в рамках приложения может возникнуть потребность вынести, например, график и граф на отдельную вкладку браузера, которую перенести на второй монитор, а меню и таблица останутся на основной вкладке на первом мониторе.
Реализовывать через множество iframe морально не готов. Привык подгружать аяксом, включать в dom и отображать компоненты по мере необходимости.
А теперь нужно придумать как этот кусок dom безболезненно перенести на новую вкладку с сохранением всех стилей, состояний, данных и т.п.
На сервере api, окна общаются через него. Что бы красиво - заменяем ajax на websoket. Все что возможно храним в localStaroge. Юзаем события:
window.onblur
window.onfocus