[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как определить - что не шевелится мышка
Страницы: 1, 2, 3, 4
zvezda_t
Цитата (killer8080 @ 19.11.2013 - 17:49)
Цитата (zvezda_t @ 19.11.2013 - 11:08)
Допустим не шевелится мышка и не нажимаается ни одна кнопка в течении пяти минут, тогда появляется окошко с вопросом "Вы оствались неактивны в течении 5 минут. Продолжить работу?"

<script> 
(
function() {
var timer = null,
timeout = 300000; //в миллисекундах (5 минут)

function watcher() {
clearTimeout(timer);
start_timer();
}

function start_timer() {
timer = setTimeout(function() {
alert('Вы оствались неактивны в течении 5 минут. Продолжить работу?');
start_timer();
}, timeout);
}

start_timer();
window.addEventListener('mousemove', watcher, false);
window.addEventListener('mousedown', watcher, false);
window.addEventListener('keydown', watcher, false);

})()

</
script>

а почему, когда очищаешь timer : clearTimeout(timer);
то все равно новое значение timer - увеличивается на единицу?

_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
killer8080
Цитата (zvezda_t @ 20.11.2013 - 12:00)
то все равно новое значение timer - увеличивается на единицу?

в смысле "увеличивается на единицу"? Это просто ссылка на таймер.
zvezda_t
killer8080
я вывела посмотреть - чему равняется timer

timer = setTimeout(function() { 
alert('timer ='+timer );
start_timer();
}, timeout);

при первом вызове timer= 3, потом выполняется:
clearTimeout(timer);
start_timer();

и значение timer становиться =4, потом 5 и тд...
Это нормально?

_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
glock18
rolleyes.gif
zvezda_t
Просто, для сравнения - до этого я работала с timer = setInterval, и для нее clearInterval(timer) обнулял timer и новое значение timer всегда =1.
Вот я и удивилась почему здесь не так wub.gif

_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
killer8080
zvezda_t
это всего лишь указатель smile.gif
zvezda_t
killer8080, ок спасибо)

в Итоге, я решила не к движению мышки - а к дате последней активности пользователя привязаться. Эту дату активности прячу на форме в
<input type="hidden" id="date_activ" value="<?=time()?>">
И на определенные действия пользователя (отправка форм например, или еще какие то действия без перегрузки страницы), обновляю эту дату.

Собственно, мне нужно отслеживать активность пользователя чтоб остановить периодический запуск на обновление данных через ajax.

Вот что получилось:


function update_ajax()
{
$.ajax....
}

var timer;
function auto_update()
{
timer = setInterval(function(){
var date_activ = $('date_activ').val();
var d = new Date;
var gmt = d.getTimezoneOffset() * 60; //поправка по Гринвичу
var time = d.getTime()/1000 + gmt;
var dif = (time - date_activ)/60;

if(dif > 5)
{
//останавливаем выполнение timer
clearInterval(timer);

alert('Вы оствались неактивны в течении 5 минут. Продолжить работу?');

//продлеваем дату
d = new Date;
time = d.getTime()/1000 + gmt;
$('date_activ').val(time);

//запускаем выполнение
auto_update();
}
else
{
update_ajax();
}
}
, 60000);
}


$(document).ready(function() {


auto_update();
});



Что скажите? :rolleyes:

_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.