![]() |
Механизм проверки перезагрузки страницы (f5)
Друзья, подскажите пожалуйста, что я делаю не так?
Идея: создать механизм проверки, была ли страница случайно перезагружена, или пользователь заходил на нее давно. Способ: используя SharedObject. Применение: в flash-игре, интенсивно получающей данные с сервера. Желательно отслеживать - если пользователь нажимает F5 и перезагружает страницу, флэш вероятнее всего грузится из кэша, а все необходимые для работы данные брать из последней сессии сохранения SharedObject (она, как я понимаю, должна автоматически произойти при выгрузке фильма из браузера). Проблема в том, что код не работает. И не работает именно при нажатии кнопки F5. Если же принудительно закрыть/открыть страницу - все ОК, при перезагрузке - увы... Неужели flash не сохраняет sharedobject при этом? testInfo_so = SharedObject.getLocal("data"); var time = new Date(); if ((testInfo_so.data.avtomatData != undefined) && ((time.getTime()-testInfo_so.data.avtomatData)<2000)) { outputText.text = "Произошла перезагрузка"; } else { outputText.text = "Пользователь зашел впервые, или посещал сайт давно."; } setInterval(proverka, 1000); function proverka() { var now = new Date(); testInfo_so.data.avtomatData = now.getTime(); } Как быть? В голову ничего кроме flush() в обработчике onEnterFrame не приходит - но это же не выход! Может быть есть какие-либо способы? |
любая проверка на клиенте не даст даже минимальной гарантии того, что юзверь тебя не адманет.
выход - запрос на сервак, где ты можешь получить точное время последнего запроса. |
| Часовой пояс GMT +4, время: 08:31. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.