powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Reverse AJAX, несколько окон
7 сообщений из 7, страница 1 из 1
Reverse AJAX, несколько окон
    #36080198
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня возникла офигенная проблема.

Я использую постоянное AJAX соединение с сервером, которое позволяет мгновенно обновлять данные в браузере (COMET, Reverse AJAX). Всё работает, но обнаружился баг.
Но как только клиент открывает новое окно, в старом соединение обрывается и оно перестаёт работать.

Проблема в том что на сервере я не могу узнать открыто новое окно или клиент обновил старое, поэтому убиваю старый коннекшен.

Думал решить добавив session_id, window_id в строку параметров, но это тоже не работает, url то получаются одинаковые вне зависимость в новом или старом окне я открываю его :).

Корень проблемы в том что на сервере по запросу get я не могу узнать идёт он из старого окна или из нового. Может быть существует какое-то решение этого вопроса?
...
Рейтинг: 0 / 0
Reverse AJAX, несколько окон
    #36080529
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теоретически, я могу узнать о том новое окно или старое при получении GET запроса проверив сохранилось AJAX соединение или нет.

Если сохранилось - значит новое окно открыто, если разорвано - то старое.

Но это тоже хз, если браузер перед тем как выполнить GET не закроет AJAX соединение это работать не будет. И вроде таких правил нету, в каком порядке браузер должен выполнять запрос.
...
Рейтинг: 0 / 0
Reverse AJAX, несколько окон
    #36080735
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,

Дофига способов есть. Не используй постоянное соединение. Это - бред сивой кобылы, вообще-то. Поверь мне, эту штуку придумали для дураков.
Когда объяснишь "чегонадо" - будет и ответ.
...
Рейтинг: 0 / 0
Reverse AJAX, несколько окон
    #36080782
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделать страницу обновляемой с сервера, как в гмайл, и возможность открывать множество окон.
...
Рейтинг: 0 / 0
Reverse AJAX, несколько окон
    #36080791
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не пользуюсь гмейлом и код смотреть не хочу. Я знаю, что гуглы такой бредятины, как постоянное соединение не используют, потому что - джедаи в яваскрипте и в хттп.
Сервер потому так и называется (слуга тоесть), что все действия он исполняет исключительно по запросу клиента . Если что-то не так, значит, плохо разбираетесь в клиент-серверных технологиях.
Если таки хотите обновлять страницу (это очень плохое решение, правда я использую такое для онлайн игр, а также для позиционирования объектов в реальном масштабе времени на карте по данным с датчиков) - грузите данные аяксом по таймеру и встраивайте их в страничку.
...
Рейтинг: 0 / 0
Reverse AJAX, несколько окон
    #36080896
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты однозначно не прав. Кто-то придумал и keep-alive, и Comet, и Continuations - и вовсе не дураки. Самое уродское решение (которое я, кстати, никогда не использую) - это запрос по таймеру. Меня это коробит. В конце-концов, есть NIO, который как раз и работает с незакрываемыми соединениями - удобно, быстро, правильно и держит сотни тысяч соединений на одном серваке (!!!). Разобравшись получше, я отошел от Комет - есть получше технологии, но в целом это направление очень поощряю ...
Сегодня не в состоянии отвечать по существу - завтра отвечу.
...
Рейтинг: 0 / 0
Reverse AJAX, несколько окон
    #36082548
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ранее использовал похожую реализацию, правда, DWR не использовал, юзал механизм, построенный на неблокирующих библиотеках Jetty - только библиотеки, так как сервером выступал Tomcat. Достаточно сложно и неудобно. Важно, что данная технология не предоставляет простых механизмов определения состояния клиента - именно то, о чем ты говоришь: отключен, рефреш или другое окно. Для определения уникальности приходилось извращаться - создавать уникальный идентефикатор и передавать его серверу, id_session не проходит, так как в разных вкладках браузера номер сессии одинаков, а там хранил пары номер сессии - идентефикатор, по которым и вычислял состояние.

Сейчас использую CometProcessor из Томкатовского пакета NIO - реализация уровнем повыше, чем у Jetty. Одно из самых важных "удобств" - определение состояние клиента для сервера и состояние сервера для клиента. Есть несколько состояний изменения и разрыва соединения, на что можно реагировать. В предыдущем посте погорячился, назвав это не Кометом, это не так - просто более совершенная реализация технологии.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Reverse AJAX, несколько окон
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]