Ziklon
@Ziklon

Drupal 6 — jQuery Timer не правильно считает?

Добрый день, есть такая проблема, на Drupal 6 сайте установлен скрипт jQuery Timer Он считает время до определённого события и показывает сколько дней осталось. Если оставить страницу открытой на некоторое время (5-10 минут) то скрипт начинает считать время быстрей. Подскажите, с чем это может быть связано? На сайте работает кеширование через модуль boost. Отключал кеширование js, не помогло.



Может быть можно добавить строчку в скрипт чтоб счётчик менялся только после перезагрузки страницы?
  • Вопрос задан
  • 3124 просмотра
Пригласить эксперта
Ответы на вопрос 3
@mactator
Возможно таймер инициализируется больше одного раза. Проверьте behaviour и контексты в нем.
Ответ написан
@mactator
Я так пониаю уже переделали. т.к. использование jQuery timer я не нашел. За это у вас сейчас отвечает set_timer_js в setInterval.
Ответ написан
Ziklon
@Ziklon Автор вопроса
Нашёл кусок кода в template.php, видимо тут какая то ошибка.
<code>//функция генерит разметку для таймера.
function theme_timer ($time_to_event) {

  $time = $time_to_event - time();

  $timer = array();

  $timer['days'] = floor($time / (60 * 60 * 24));
  
  $timer['hours'] = floor(($time - $timer['days'] * 60 * 60 * 24) / (60 * 60));
  $timer['minutes'] = floor(($time - $timer['days'] * 60 * 60 * 24 - $timer['hours'] * 60 * 60) / 60);
  /*
  if(!drupal_is_front_page()) { //закоментить после установки главной
    $timer['second'] = $time - $timer['days'] * 60 * 60 * 24 - $timer['hours'] * 60 * 60 - $timer['minutes'] * 60;
  }
  */
  $time_part_output = array();
  foreach ($timer as $part => $int) {
    if(strlen($int) < 2) {
      $timer[$part] = '0' . $int;
    }
    
    if ( in_array($part, array('hours', 'minutes', 'second')) ) {
     $letter_line = ''; 
    }
    else {
      $letter_line =  '<span class="letter-line ">';
    }
    
    foreach (str_split($timer[$part]) as $key => $symvol) {
      $time_part_output[$part] .= '<span class="letter-wrapper">' . $letter_line . '</span><span class="letter letter-' . $part . ' int_' . $key . '">' . $symvol . '</span></span>';
    }
    
  }
  /*
    if(!drupal_is_front_page()) { 
    return $time_part_output['days'] .
         $time_part_output['hours'] . '<span class="to_dot"> : </span>' .
         $time_part_output['minutes'] . '<span class="to_dot"> : </span>' .
         $time_part_output['second'];
   }
  */
    return $time_part_output['days'].
         $time_part_output['hours'] .
         $time_part_output['minutes'] .
         $time_part_output['second'];
  
}

/*ФУНКЦИИ ВОЗВРАЩАЮТ РАЗМЕТКУ ЗАГОЛОВКА СТРАНИЦЫ*/
</code>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы