![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
evilelf |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 8.3.2010 Репутация: нет Всего: нет |
Здравствуйте.
Нужно запустить таймер на странице после прекращения каких-либо действий пользователя (клики, движение курсора, ввод данных в поля и т.п.). Скажем, пользователь вводит некую информацию, и если какие либо действия с его стороны прекращаются более чем на несколько секунд - запускается таймер. Как реализовать саму "считалку", я знаю (setTimeout), а вот как отследить прекращение каких-либо действий пользователя и уже по этому событию запускать таймер? Приветствуются варианты с использованием фреймворков ![]() Это сообщение отредактировал(а) evilelf - 13.9.2010, 15:48 |
|||
|
||||
magelan |
|
|||
![]() потерял xPath ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 3 Всего: 16 |
висят функции на событиях
document.onmousemove = f; document.onclick = f; document.onkeydown = f; функция f сбрасывает глобальную переменную flag в 0. работает функция под setTimeout, каждым вызовом увеличивает глобальную переменную flag. как только переменная достигла определенного значения, начинается шангри-ла. "Определенное значение" зависит от того, как часто работает setTimeout, определяется славным методом "научного тыка". |
|||
|
||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
magelan, научный тык не нужен ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
evilelf |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 8.3.2010 Репутация: нет Всего: нет |
Оу, спасибо за солюшен, работает!
|
|||
|
||||
magelan |
|
|||
![]() потерял xPath ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 3 Всего: 16 |
ksnk,
как же без него то? без него скушно. Я немного опасаюсь вашего решения, из-за частоты вызывания onmousemove. Мне кажется, что setTimeout лучше пусть живет отдельно. Впрочем выбор решения все равно за автором темы. |
|||
|
||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
если в onmosemove будет делаться что-то тяжелое - он просто будет вызыватся с меньшей частотой, так что производительность не сильно пострадает. Вот только события могут начать пропадать. А насчет реальности задержки - можно прогнать такой тестик
у меня в хроме выдает 4-6, в IE6 - 31. Тоесть в секунду вполне могут уместится 30000 итераций на моем компутере на IE6. Стоит ли переживать из-за такого замедления? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
evilelf |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 8.3.2010 Репутация: нет Всего: нет |
Вообще, сей таймер пишется под машины с тачскрином...так что там будут только клики: по кнопкам формы, виртуальной клавиатуры... Кстати, хороший скрипт последней не подскажете?
![]() Это сообщение отредактировал(а) evilelf - 13.9.2010, 20:24 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |