Просмотр полной версии : Обработчик выхода из окна браузера
Есть небольшое приложение на флеше, которое я интегрирую в страницу html, задача состоит в том чтоб когда юзер закроет страницу должна удалится информация из базы даных. На кнопку я такой обработчик повесил, а как это зделать для страницы браузера не вкурсе, помогите пожалуста.
MerlinTwi
10.12.2009, 15:24
Попробуйте так.
В HTML страницу ставим:
<script type="text/javascript">
window.onbeforeunload = function() {
// эта функция вызывается при закрытии HTML страницы
var app = document.getElementById('id_флешки_а_html');
if (app) app.doClose(); // дергаем флеш
}
</script>
на флешке:
if (ExternalInterface.available) {
try {
// объявляем функцию доступную из javascript
ExternalInterface.addCallback("doClose", doClose);
} catch (error:Error) {}
}
//...
/** HTML страница закрывается */
private function doClose():void {
// делаем что надо
}
Огромное спасибо, а то уже начал искать на иностранных сайтах решение
CrazyFlasher
10.12.2009, 16:25
а если выключить комп не закрывая браузера?
так нельзя делать...
На кнопку то я повесил это дело но если вешать на обработчик закрытия окна страницы, то ничего не получается, страница закрывается а функция не выполняется
Сделайте таймер на сервере:
1. Если от клиента приходит запрос - обнуляйте таймер.
2. Если таймер достиг конечного значения - удаляйте информацию их бд.
Если используете прелоадер флешки, расположенной на сервере, и работаете с сокетами, то можно работать с sid.
Добавлено через 1 минуту
0. Старт таймера - по первому запросу от пользователя.
Не понял как реализоватьСделайте таймер на сервере:
1. Если от клиента приходит запрос - обнуляйте таймер.
2. Если таймер достиг конечного значения - удаляйте информацию их бд.
Добавлено через 12 часов 57 минут
Просто я пишу чат на Flash. Задача моя состоит в том чтобы выводились все пользователи онлайн, по таймеру через каждые 10 секунд отсылает Flash запросы PHP, тот проверяет базу, и выводит всех кто сейчас онлайн. Но если человек вышел, то информация собственно не удаляется, можна конешно повесить на флеш кнопку выход, но не факт что все будут ей пользоватся, по этому нужно какоето решение. Если вопрос не сюда извените)).
откройте в клиентском флеше сокетное соединение с сервером.
даже если юзер вырубит комп тупо, сервер уже будет в курсе - внесете изменения в БД. работающего быстрее способа нет :)
Можно сделать еще в таблице пользователей онлайн поле с временем последннго запроса.
Таймер каждые 10 секунд отправляет запрос "я онлайн, дай мне спиок ползователей", а php удаляет тех кто не обновлялся более 11 секунд и возвращает остальных.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.