Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2010, 07:42   #1
storm296
Новичок
Джуниор
 
Аватар для storm296
 
Регистрация: 03.08.2010
Сообщений: 2
По умолчанию проблема с таймером javascript

Всем привет! уже больше месяца парюсь над написанием таймера обратного отсчета на javascript, работает так: каждые 1:40 должна появляться кнопка, 20 минут она висит и если не нажали то исчезает, потом снова через 1:40 тоже самое. Реализовано так - в БД (oracle) находится время с которого кнопка должна быть видимой, а также собственно время с котрого идет отсчет таймера, например отсчет 20 минутного перерыва когда висит кнопка начинается в 10:40:59, 12:40:59 итд. То есть если закрыть браузер и открыть таймер не сбивается.
Код самого таймера позаимствован из нета (с javascript очень редко работаю) и адаптирован по мои нужды, значение для определения время отсчета таймера передается из C# (куда попадает из БД), также адрес страницы записывается в куки чтобы потом когда таймер истекает перейти на нее же (такой своеобразный релоад), вот код таймера

Код:
onload = function timer1()
 {
    var sec;
    sec = document.getElementById('_ctl1_HF').value;
    Dphp=(new Date()).getTime()+ sec *1000; 
    dKlientM=(new Date()).getTimezoneOffset();
    setInterval(clock1,1000);
    clock1();
    setCookie("path", Path);
    
 } 

 function clock1()
 { var D;
    var S;
    var dEvent;
   if ( document.getElementById('timer'))
   {
    document.getElementById('timer').innerHTML = 
    (D=new Date(Dphp-(new Date()).getTime() + dKlientM*60000)).getHours()+':' 
    +(D.getMinutes()/100).toFixed(2).substr(2)+':'+(D.getSeconds()/100).toFixed(2).substr(2);
    
    if ((D=new Date(Dphp-(new Date()).getTime() + dKlientM*60000)).getHours()+':' 
    +(D.getMinutes()/100).toFixed(2).substr(2)+':'+(D.getSeconds()/100).toFixed(2).substr(2) == '0:00:00')
        {
            document.location.replace(getCookie("path"));
        } 
        
    }
  
  }
проблема: в разные промежутки времени, через 3 часа, через 5 часов, вобщем по-разному, когда время таймера истекает вместо нужного времени на нем появляется 23:59:59 (я так подозреваю что на самом деле 24:00:00 просто при перегрузки страницы не успеваешь это рассмотреть), почему не происходит обновление из БД мне непонятно и где искать проблему уже не знаю(((
Помогите пжста.
storm296 вне форума Ответить с цитированием
Старый 03.08.2010, 15:38   #2
storm296
Новичок
Джуниор
 
Аватар для storm296
 
Регистрация: 03.08.2010
Сообщений: 2
Печаль

начала лопатить код с самого начала - от БД к C# и к JS - нашла!
при перезпгрузке страницы не происходит обращение к БД, т.к. переменная принимающая значение количества секунд из БД остается со значением 0 поэтому и таймер начинает отсчитывать время от 24:00:00, вот теперь непонятно почему же в некоторых случаях при перезагрузке инфо берется с сервера, а в некоторых случаях нет????
сама страница написана на ASP.NET
storm296 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
% и ^ в javascript HTL JavaScript, Ajax 4 21.01.2010 20:46
javascript kettyrus Помощь студентам 1 03.10.2009 14:00
Проблема javascript в ИЕ6,помогите killer12rus JavaScript, Ajax 2 13.12.2008 19:50
JavaScript. Проблема с GetElementById kirill555 Помощь студентам 1 14.02.2008 12:30