Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отследить закрытие браузера, как? именно закрытие, а не завершение... 
:(
    Опции темы
-=Ustas=-
Дата 21.8.2005, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Доброго времени суток!
Сабж! Именно закрытие браузера, а не завршение работы с текущи документом, т.е. я имею ввиду, что onUnload для данного случая не подходит. Мне нужно сделать следущее: Когда пользователь закрывает окно браузера (мой случай оптимизирован только под IE), то его редиректит на некоторый скрипт, который выполняется и закрывается окно. Возможно ли такое, в принципе?!


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Aliance
Дата 22.8.2005, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



нет, не должно быть возможно.
Но мне в таких случаях onunload помогал.
Поясни, что тебе нужно сделать перед закрытием?
PM MAIL WWW ICQ Skype   Вверх
-=Ustas=-
Дата 22.8.2005, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



onunload здесь не поможет, так как это событие происходит и при обновлении страницы. Перед закрытием мне нужно обязательно перенаправить и выполнить php-скрипт, который уничтожает некоторые переменные. Т.е. произвести зачистку перед некорректным выходом пользователя.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
diam
Дата 22.8.2005, 05:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 348
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: 6
Всего: 16



Ustas, поясни:
1. Что ты подрузумеваешь под закрытием?
Именно закрытие главного окна? Закрытие браузера? Обновление страницы кнопкой F5?

2. Что должно зачищаться?
Куки?
PM MAIL   Вверх
-=Ustas=-
Дата 22.8.2005, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



diam, по-моему я все понятно объяснил.
Цитата
1. Что ты подрузумеваешь под закрытием?
Именно закрытие главного окна?

Его сАмого, самогО бразузера.
Цитата
2. Что должно зачищаться?
Куки?

Нет, открытая текущая сессия. Но ее будет убивать php-скрипт, на который его и нужно отслать при закрытии окна.
Всё, более подробно уже некуда. Как я понимаю, скорее всего JS не поможет и придется прибегать к cron-у ?!


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
diam
Дата 22.8.2005, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 348
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: 6
Всего: 16



Ustas, при закрытии браузера текущая сессия теряется самим браузером, и при его последующем открытии и брожении по твоему сайту браузер получит новую сессию, поскольку старая для него пропадёт.
PM MAIL   Вверх
-=Ustas=-
Дата 22.8.2005, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



diam smile Естественно теряется, для того у них и существует уникальный идентификатор. Ты меня опять не понял. smile Я черным по белому говорю - мне нужно, чтобы старая сессия уничтожилась полностью - именно при закрытии браузера! Т.к. если явно не убить сессию, тобишь destroy, то она остается некоторое время на серваке, а мне этого как раз таки и не надо.
P.S. Извинясь за офтоп, не в ту степь уже поперли - не соответствуем форуму.

Это сообщение отредактировал(а) -=Ustas=- - 22.8.2005, 11:24


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
diam
Дата 22.8.2005, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 348
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: 6
Всего: 16



В общем, ты хочешь, что бы при закрытии браузера некий скрипт отправил мессагу серверу: "всё, можешь удалять!".
Не получится smile.
PM MAIL   Вверх
-=Ustas=-
Дата 22.8.2005, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Лана, получится, не получится... Вернемся к изначальному вопросу - можно ли средствами JavaScript отловить событие закрытия браузера? Подчеркну еще раз закрытия, а не выгрузки документа. onunload не прёт, есть какие-нибудь извращения в этом языке (может там какие-нить неофициальные незадокументированные возможности...) ?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Sardar
Дата 22.8.2005, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



-=Ustas=- много раз уже такое обсуждалось. Ответ: нет нельзя. И никогда не будет, ибо "нафига"? smile Все сессии закрывай по таймауту - самый безглючных способ.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
diam
Дата 22.8.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 348
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: 6
Всего: 16



Просмотрел спецификацию JavaScript, DOM для подтверждения своих мыслей. Ничего не нашёл.

Я думаю, такого просто не должно быть. Представим себе обратную ситуацию, то есть, средствами скриптового языка можно заставить браузер отправить некоторую информацию на сервер перед закрытием.
Итак, открыт браузер, висит отдельным процессом (или иерархическим набором процессов) в системе. Поскольку мы средствами скриптового языка может сделать "последнюю отправку" на сервер, то и процесс завершать пока не можем. Зашли на некий сайт xxx.net. Видим то, что нам не нужно. И закрываем. А на сайте скрипт просит отправки на сервер некоторой инфы, которую нужно вычислить при дозагрузке документа smile. И тут тебе варианты:
  • Браузер висит, не даёт себя закрыть, пока не свяжется с сервером.
  • Браузер закрывается, но процесс висит, и так до тех пор, пока не свяжется с сервером.
Первый вариант будет просто бесить пользователей, а второй - ещё хуже первого (что-то из серии "Тайная жизнь вашего браузера").
Тогда, получается, только один выход для принудительного закрытия - убивание процесса.
Сам-то захочешь такой браузер?

К тому же, HTTP - протокол запросов/ответов, что само по себе (по логике вещей) предполагает, что сервер, отправляя ответ клиенту, не убеждается, что клиент получит всё, поскольку клиент мог и не дожидаться ответа на запрос smile.

З.Ы. Мы рассмотрели тот вариант, когда браузер не даст пользователю закрыть себя до отправления.
PM MAIL   Вверх
Sardar
Дата 22.8.2005, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(diam @ 22.8.2005, 13:01)
Просмотрел спецификацию JavaScript, DOM для подтверждения своих мыслей.

DOM не описывает логику браузера, а документ, его представление в среде JS(любой язык). JavaScript(ECMA Script) тоже не описывает логику браузера, а синтаксис и список стандартных обьектов для JavaScript(Array, Object, Function etc).


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
-=Ustas=-
Дата 22.8.2005, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Ладно, будем искать другие решения.
Спасибо всем!


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Aliance
Дата 25.8.2005, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Копай в сторону этих событий:
Добавлено @ 12:30
Естественно, IE only
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0624 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.