Как вы общаетесь между двумя вкладками / окнами браузера?

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

Пример из реального мира: Google использует это поведение в GMail. При создании нового сообщения, если вы нажмете ссылку "Кому", появится список ваших контактов в новом окне браузера. Это оставляет исходное окно составления электронной почты открытым и активным для ввода, в то время как пользователь может в любое время выбрать получателей электронной почты из списка контактов. Когда они отправляют это окно, выбранные адреса электронной почты добавляются в список получателей в исходном окне создания.

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

Для справки, мой технологический стек для этого - приложение ASP.NET MVC, запускающее второе приложение ASP.NET MVC, которое содержит приложение Silverlight. Оба приложения могут использовать JQuery.

Спасибо за вашу помощь.

2 ответа

Решение

Я не думаю, что вы имеете в виду две вкладки. Gmail осуществляет связь между всплывающим окном и родителем.

Допустим, вы открыли новое окно, используя JavaScript. В открывшемся окне вы можете сделать:

opener.someFunction() передать данные обратно. Позвольте мне найти надежный пример и вставить его.

Редактировать: Вот хороший пример. http://www.javascriptkit.com/javatutors/remote2.shtml

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

У вас есть две возможности:

  1. Постоянный опрос ( setInterval и AJAX)
  2. Push ( Comet и HTML 5 WebSocket API)
Другие вопросы по тегам