Как вы общаетесь между двумя вкладками / окнами браузера?
У меня есть веб-приложение, которое запускается как второе веб-приложение в новом окне / вкладке браузера. Я хочу обновить содержимое исходной страницы, когда пользователь отправит свой вклад на второй странице.
Пример из реального мира: Google использует это поведение в GMail. При создании нового сообщения, если вы нажмете ссылку "Кому", появится список ваших контактов в новом окне браузера. Это оставляет исходное окно составления электронной почты открытым и активным для ввода, в то время как пользователь может в любое время выбрать получателей электронной почты из списка контактов. Когда они отправляют это окно, выбранные адреса электронной почты добавляются в список получателей в исходном окне создания.
Как это достигается? Я полагаю, что это может быть сделано с использованием AJAX, но в идеале это решение позволит избежать обходной логики / логики программирования, необходимой для маршрутизации через сервер.
Для справки, мой технологический стек для этого - приложение ASP.NET MVC, запускающее второе приложение ASP.NET MVC, которое содержит приложение Silverlight. Оба приложения могут использовать JQuery.
Спасибо за вашу помощь.
2 ответа
Я не думаю, что вы имеете в виду две вкладки. Gmail осуществляет связь между всплывающим окном и родителем.
Допустим, вы открыли новое окно, используя JavaScript. В открывшемся окне вы можете сделать:
opener.someFunction()
передать данные обратно. Позвольте мне найти надежный пример и вставить его.
Редактировать: Вот хороший пример. http://www.javascriptkit.com/javatutors/remote2.shtml
Вы можете использовать открывалку, чтобы сделать много.
У вас есть две возможности:
- Постоянный опрос ( setInterval и AJAX)
- Push ( Comet и HTML 5 WebSocket API)