| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Таймер по событиям |
| Автор: evilelf 13.9.2010, 15:47 |
| Здравствуйте. Нужно запустить таймер на странице после прекращения каких-либо действий пользователя (клики, движение курсора, ввод данных в поля и т.п.). Скажем, пользователь вводит некую информацию, и если какие либо действия с его стороны прекращаются более чем на несколько секунд - запускается таймер. Как реализовать саму "считалку", я знаю (setTimeout), а вот как отследить прекращение каких-либо действий пользователя и уже по этому событию запускать таймер? Приветствуются варианты с использованием фреймворков |
| Автор: magelan 13.9.2010, 17:15 |
| висят функции на событиях document.onmousemove = f; document.onclick = f; document.onkeydown = f; функция f сбрасывает глобальную переменную flag в 0. работает функция под setTimeout, каждым вызовом увеличивает глобальную переменную flag. как только переменная достигла определенного значения, начинается шангри-ла. "Определенное значение" зависит от того, как часто работает setTimeout, определяется славным методом "научного тыка". |
| Автор: evilelf 13.9.2010, 17:45 | ||
Оу, спасибо за солюшен, работает!
|
| Автор: magelan 13.9.2010, 17:48 | ||
ksnk,
как же без него то? без него скушно. Я немного опасаюсь вашего решения, из-за частоты вызывания onmousemove. Мне кажется, что setTimeout лучше пусть живет отдельно. Впрочем выбор решения все равно за автором темы. |
| Автор: ksnk 13.9.2010, 18:24 | ||||
если в onmosemove будет делаться что-то тяжелое - он просто будет вызыватся с меньшей частотой, так что производительность не сильно пострадает. Вот только события могут начать пропадать. А насчет реальности задержки - можно прогнать такой тестик
у меня в хроме выдает 4-6, в IE6 - 31. Тоесть в секунду вполне могут уместится 30000 итераций на моем компутере на IE6. Стоит ли переживать из-за такого замедления? |
| Автор: evilelf 13.9.2010, 20:22 |
| Вообще, сей таймер пишется под машины с тачскрином...так что там будут только клики: по кнопкам формы, виртуальной клавиатуры... Кстати, хороший скрипт последней не подскажете? |