jQuery Timers

Обсуждаются вопросы использования плагинов для jQuery, созданных сторонними разработчиками.

Модераторы: TRAHOMOTO, tuareg

Re: jQuery Timers

Сообщение zandroid » 12 фев 2010, 21:28

Вы не правильно делаете, или не совсем поняли как Вам порекомендовали настроить таймер после перезагрузки. Вам порекомендовали решение, подразумевая, что отсчёт времени идёт в обратном порядке, по Вашему примеру видно, что у Вас в коде отсчёт времени идёт в прямом порядке. Поэтому рекомендацию от Gennady можно немного преобразовать в следующее: считываете из cookie сколько уже отработал таймер (ну, например 35 сек) => и ставите это значение в качестве начального значения счётчика (т.е. вместо нуля).

Кроме того в коде я заметил следующее: функция loadmessage() запускает таймер с интервалом в 1с на 10 срабатываний и на 10 срабатывании (последний раз, так сказать) в таймере текст-счётчик обнуляется, выполняется какая-то отправка и снова вызывается эта функция, которая запускает таймер... и т.д. Так вот, с добавлением обработки куков в начало этой функции мы (а вернее Вы) получили, что и при втором вызове этой функции (когда первый раз прошло 10 секунд) снова будут обработаны куки - это, как я предполагаю, уже ошибка.

Я бы посоветовал запустить таймер без ограничения на срабатывания (в вызове функции everyTime(interval, [label], fn, [times], [belay]) параметр times = 0), а в текст-счётчика выводить остаток от деления на 10. Т.о. в коде такие изменения:
Считывание начального значения из куков:
Код: выделить все
var timeGet = $.cookies.get('readyTime');
var value = timeGet || 0; // если куков нет - то начальное значение = 0
// или просто var value = $.cookies.get('readyTime'); - только тут нужно его привести к типу целого числа

вывод текста-счётчика:
Код: выделить все
$(this).text((i + value) % times);

тут возможно вместо сложения чисел может сработать конкатенация строк, тогда надо value при чтении из кук явно привести к типу целого числа.

вызов обращения к серверу:
Код: выделить все
if (((i + value) % times) == 0)
{
    console.log('send');
}
Последний раз редактировалось zandroid 13 фев 2010, 10:12, всего редактировалось 1 раз.
Аватар пользователя
zandroid
Модератор
 
Сообщений: 1164
Зарегистрирован: 21 янв 2010, 22:16
Откуда: Нижний Новгород

Re: jQuery Timers

Сообщение germani » 13 фев 2010, 03:01

Кроме того в коде я заметил следующее: функция loadmessage() запускает таймер с интервалом в 1с на 10 срабатываний и на 10 срабатывании

Все верно... именно так оно и делает если поставить не 10 а 30 или 60 то будет запускать раз в этот промежуток времени....
Спасибо за помощь zandroid, ваш пример все ближе и ближе к моей цели )) но опять же ... значение в value передаеться либо 0 либо кука это значит что если кука поставлена в периоде от 0 до 10 например на 6 то отрабатывать будет 6 раз и это значит что ...следующая цифра идет 7 + 6 = 3 и на тройке остановиться отчет времени...но тут вопрос спорный либо я ни то что то делаю...либо... ;)
а пока ввел еще одну переменную если человек за то время пока отрабатывается таймер не сделает ни чего хорошего то ... он будет не в сети и сообщений не получит пока не нажмет ф5...
Огромное спасибо за помощь...
Буду дальше познавать радости js а в частности jquery...
зы: буквально одна маленькая просьба у меня не получилось запустить совсем ни как одну библиотеку эту ->http://plugins.jquery.com/project/jCron
это так же из серии timers... может у вас получиться очень бы хотелось почитать и посмотреть как она работает
не люблю знаки препинания...не ругайте...а!?
germani
 
Сообщений: 7
Зарегистрирован: 11 фев 2010, 17:16

Re: jQuery Timers

Сообщение zandroid » 13 фев 2010, 10:09

Э-хе-хе... Опять 25 :)
Я же написал, что у вас таймер идёт в прямом направлении: 1, 2, 3, ... , 10 -> 0, 1, 2 ... и т.д. Если таймер был на 6 когда нажали F5, то в куки запишется 6 и после обновления произойдёт следующее: из кук прочитаем 6, пустим снова бесконечный таймер, который уже будет считать так:
6+0=6, 6+1=7, ... , (6+4)%10 = 10%10 = 0 !!!, (6+5)%10 = 11%10 = 1, ... и т.д. (Тут алгоритмически-математически надо это понять - посмотри мои исправления в коде и попробуй сам просчитать ход выполнения хотя на листочке).
Аватар пользователя
zandroid
Модератор
 
Сообщений: 1164
Зарегистрирован: 21 янв 2010, 22:16
Откуда: Нижний Новгород

Re: jQuery Timers

Сообщение germani » 13 фев 2010, 13:29

Утро вечера мудренее... в данном решении было одним из главных слов бесконечный и все хорошо заработало...
не люблю знаки препинания...не ругайте...а!?
germani
 
Сообщений: 7
Зарегистрирован: 11 фев 2010, 17:16

Пред.

Вернуться в Плагины jQuery

Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 6