$(function () {
var YMEventHandler = (function () {
var _timerDelta = 100,
_timerCookieName = "___TimerYM___"
_timerElapse = 2 * 60 * 1000, // two minutes
_timer = setInterval(function () {
var timerValue = parseInt(_getTimerValue()) || 0;
timerValue += _timerDelta;
_setTimerValue(timerValue);
if (timerValue >= _timerElapse) {
clearInterval(_timer);
// вызов того, что нужно было вызвать!!!
}
}, _timerDelta);
function _getTimerValue() {
return _getCookie(_timerCookieName);
};
function _setTimerValue(value) {
_setCookie(_timerCookieName, value);
};
function _getCookie(name) {
var matches = document.cookie.match(new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"));
return matches ? decodeURIComponent(matches[1]) : undefined;
};
function _setCookie(name, value) {
document.cookie = name + "=" + value;
};
})();
});
$(function(){
checkTime(function(){
alert('2 minutes')
});
});
function checkTime(callback){
var time = 10; //время, в секундах
if ( localStorage ) {
if (localStorage.userEnter == "end") return;
if (!localStorage.userEnter) localStorage.userEnter = new Date().getTime();
else if ((new Date().getTime() - localStorage.userEnter) > time * 1000 ) {
callback && callback();
localStorage.userEnter = "end";
}
}
}
таймстемп - сейчас
.window.onload = function () {
var when = localStorage.getItem('when'),
handlerTimeout;
if (when && !localStorage.getItem('done')) {
when = parseInt(when); // localStorage хранит строки
handlerTimeout = setTimeout(function () {
// тут делаем полезную работу
localStorage.removeItem('when');
localStorage.setItem('done', true);
}, when - Date.now());
} else { // флага еще нет, первый заход
localStorage.setItem('when', Date.now() + 2 * 60 * 1000); // через две минуты от сейчас
}
};