PDA

Просмотр полной версии : Механизм проверки перезагрузки страницы (f5)


v350
27.08.2004, 21:38
Друзья, подскажите пожалуйста, что я делаю не так?
Идея: создать механизм проверки, была ли страница случайно перезагружена, или пользователь заходил на нее давно.
Способ: используя 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 не приходит - но это же не выход!
Может быть есть какие-либо способы?

Iv
30.08.2004, 14:44
любая проверка на клиенте не даст даже минимальной гарантии того, что юзверь тебя не адманет.
выход - запрос на сервак, где ты можешь получить точное время последнего запроса.