Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Попап окно в единственном экземпляре


Автор: Intorion 14.3.2008, 18:38
Ищу возможность использовать окно в единственном экземпляре и ссылаться на него. Конкретно это окно - окно с активными чатами между пользователями. То есть оно не должно перезагружаться ни в коем случае. Оно один раз открыто и пользователь работает с ним, вводит тексты и т.д. Проблема заключается в том, что пользователь ходит по сайту, или перезагружает страницу на портале, а я не могу понять каким образом проверить существует ли уже окно с этим именем и как на него ссылатся в дальнейшем ?
Кто нибудь знает как это сделать ?

Автор: smartov 14.3.2008, 20:42
Я, к сожалению, не знаю спобоба сделать это стандартными средствами, но если никто не предложит другого - могу предложить хак.
Пусть попап с чатом устанавливает раз в 5 секунд cookie с expire через 5 секунд. 
Таким образом основное окно будет проверять наличие этого cookie и не пытаться открыть новый popup если куки установлен.

Автор: Nigel 14.3.2008, 23:06
Зачем какой-то хак, а так что?
Код

function openWin()
{
    if(!chat_win)
        var chat_win=window.open("chat.php","chat","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1");
}

Автор: ksnk 14.3.2008, 23:51
Nigel, по условиям задачи - "открывающее" окно можно спокойно пристрелить...

imho, только куками, правда добираться до окна уже никак...
Можно связываться с окном Ajax'ом... smile Этакий чат в чате на пару табов...

Автор: smartov 15.3.2008, 14:29
Nigel, при повторном вызове 
Цитата(Nigel @  14.3.2008,  22:06 Найти цитируемый пост)
window.open("chat.php","chat",

дочернее окно перегрузится. Хотя и той же самой страницей, но перегрузится. 
А по условию 
Цитата(Intorion @  14.3.2008,  17:38 Найти цитируемый пост)
оно не должно перезагружаться ни в коем случае


Автор: IDVsbruck 18.3.2008, 03:38
Только серверными технологиями.
Чтобы не связываться с сокетами, можно постоянным опросом окон. Чтобы не нагружать клиента и трафик, я использую технологию Continuations - ответ с сервера возвращается только при возникновении события. Достаточно дешево, но очень сердито. Лично я использую данную технологию при создании виртуального казино.

Автор: Intorion 19.3.2008, 13:36
Спасибо за ответы!

В итоге чат идёт через сервер, при каждой перезагрузки страницы запонимается введёный текст, и после загрузки он просто востанавливается

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)