Таймер PHP / Javascript и счетчик - PullRequest
       45

Таймер PHP / Javascript и счетчик

0 голосов
/ 05 августа 2011

Обзор: мне нужен счетчик, который может отсчитывать от вставленного номера, который может продолжать отсчет, пока нет пользователей, и который визуально показывает счет, как это происходит на веб-сайте.Я буду пытаться проработать это, оставив это здесь.Любая помощь будет оценена.Я планирую упаковать это в модуль для Joomla и бесплатно выпустить его в ближайшем будущем.

Входные данные:

  • начальная сумма , Интервал в секундах для обновления, Скорость для добавления для каждого интервала

PHP-класс для построения таймеров

class Counter { 
    var $baserate;
    var $rate;
    var $start;
    var $seconds;
    var $now;
    var $month;
    var $day;
    var $year;
    var $saving;
    var $growthrate;

    function Counter($rate, $baserate,$seconds,$year,$day,$month) 
    { 
         $this->rate = $rate; 
         $this->base = $baserate;
     $this->seconds = $seconds;
     $this->year = $year;
     $this->day = $day;
     $this->month= $month;
     $this->carbonsaving(); 
     } 

     function carbonsaving() 
     { 
    $now = time();
    $start = mktime(0,0,0,$this->month,$this->day,$this->year);
    $growthrate = $this->rate * (60/$this->seconds);
        $saving = round(((($now - $start) * $growthrate) + $this->base));
    return $saving;
      } 

}
$count1 = new Counter(0,1, 2,2011,4,8); 
$count2 = new Counter(15,1, 1,2011,1,8); 
$width = 300;
$height = 350;
?>

Javascript Установка интерваловдля обновления на веб-странице и вызова функции для начального значения. Похоже, что они сейчас не синхронизированы

var car1 =  <?php print($count1->carbonsaving()); ?>;
var car2 =  <?php print($count1->carbonsaving()); ?>;
function  incs1()
{
car1 = car1 + <?php print($count1->rate);?>  ;
document.getElementById("carb1").innerHTML=car1;
 }  
function  incs2()
{
car2 = car2 + <?php print($count2->rate);?>  ;
document.getElementById("carb2").innerHTML=car2;
} 
setInterval('incs1()', <?php print($count1->seconds);?> *1000 );
setInterval('incs2()', <?php print($count2->seconds);?> *1000 );

Наконец, секции таймера.Я хочу избавиться от загрузки и добавить событие onpageload в тело, чтобы убедиться, что числа загружаются сразу после загрузки страницы (вместо ожидания интервала).

<span id="carb1">Loading...</span><br />
<span id="carb2">Loading...</span><br />
<span id="carb3">Loading...</span>  

текущий сценарий: текущий сценарий выполняется классом, который создает объект для каждого из трех счетчиков на странице.В настоящее время счетчик сталкивается с несколькими проблемами.

  1. Подсчет и интервалы не синхронизированы.То есть интервал обновления скрипта на визуальном веб-сайте не синхронизирован с количеством в скрипте.В какой-то момент моя логика должна быть отключена.

  2. Проблема с вводом числа для начала.Я еще не добавил функцию для достижения этой цели.Кто-нибудь знает простой способ ввести входной номер в скрипт и создать правильное время запуска для этой программы?

1 Ответ

1 голос
/ 08 августа 2011

Так что это была моя математика.Это работает сейчас.

   function carbonsaving() 
{ 
    $now = time();
    $start = mktime(0,0,0,$this->month,$this->day,$this->year);
    $growthrate = ($this->rate / $this->seconds)  ;
        $saving = round(((($now - $start) * $growthrate)+$this->base ));
    return $saving;
} 
...