Является ли мой код убийцей производительности? - PullRequest
0 голосов
/ 18 августа 2011

Я показываю значение timer.php через AJAX в index.php. Однако меня беспокоит производительность, если это убийца серверов, если в сети 30 человек, и тому подобное. Вы предлагаете мне некоторые правки?

Спасибо.

index.php

<script language='JavaScript'>
setInterval( 'SANAjax();', 1000 );

$(function() {
SANAjax = function(){

$('#dataDisplay').load('timer.php');

}
 });

</script>
<div id="dataDisplay"></div>

timer.php

function time_difference($endtime){
    $days= (date("j",$endtime)-1);
    $hours =date("G",$endtime);
    $mins =date("i",$endtime);
    $secs =date("s",$endtime);
    $diff="'day': ".$days.",'hour': ".$hours.",'min': ".$mins.",'sec': ".$secs;
    return $diff;
}   

$future_time = mktime(0, 0, 0, 9, 19, 2011);
$now_time = strtotime("+2 hours");
$end_time = $future_time - $now_time;
$difference = time_difference($end_time);
if ($future_time <= $now_time ) { echo "Date reached"; } else { echo $difference; };
?>

Ответы [ 3 ]

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

Зависит от характеристик вашего сервера и количества клиентов, это может быстро стать убийцей сервера.

Многократные обращения к файлу каждую секунду быстро приведут к значительным нагрузкам, поэтому лучшие практики требуют использования таймера обратного отсчета JavaScript. Мне особенно нравится этот: http://stuntsnippets.com/javascript-countdown/

А для реализации jQuery:

<script type="text/javascript">
var myDate = new Date(); //Retrieve actual date
myDate.setTime(this.getTime() + (3600 * 2)); //Add two hours

$(document).ready(function() {
    $("#time").countdown({
        date: myDate.toGMTString(),
        onComplete: function( event ){
            $(this).html("completed");
        },
        leadingZero: true
    });
});
</script>

<p id="time" class="time"></p>

Этого должно быть достаточно, больше нет необходимости в вызовах PHP, и клиент делает все.

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

Я использую jQuery Countdown http://keith -wood.name / countdown.html , чтобы установить таймер на мои страницы, чтобы пользователь знал, когда он выйдет из системы из-за неактивности .

Вы можете привязать функцию к событию истечения счетчика.

http://code.google.com/p/jquery-countdown/ ... Простой пример

http://keith -wood.name / countdown.html ... показывает все навороты ...

Он может быть таким же простым, как первый, или подробным, как второй!

- = Bryan

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

Установив setInterval на каждую секунду, вы в основном говорите, что для 30 клиентов вы будете получать примерно 30 тксн в секунду на ваш php-сервер.Трудно сказать, что это просто убийство производительности, а просто сказать, что для этого простого вызова вам придется обрабатывать 30 т / с.Сначала я хотел бы спросить, почему вы делаете это с помощью серверного скрипта.Вы также можете легко указать html-файл дату и время загрузки страницы и выполнить обратный отсчет с помощью всего лишь javascript в браузере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...