Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: php и javascript
 
 автор: demon   (06.12.2006 в 15:03)   письмо автору
 
 

Есть такой скрипт, время тикает нормально, а пинг срабатывет только один раз, если обновить страницу то он сработает еще раз и замирает, а время идет.
Не подскажите почему это просходит или как обойти, а может другой способ предложите.
Это просто тестовый скрипт, пытаюсь технологию работы php и javascript понять, а вообще была задумка чтобы он заданный скрипт пинговал заданный узел и время выводил столбиком в реальном времени (интересно такое возможно?).

<p><?php include 'function.inc'; ?><b id='clock'></b></p>

<script Language="JavaScript">
<!--
var timeStr, dateStr, ostStr, x;
function clock() {
now= new Date();
ex = new Date(2007,0,1,0,0,0);

// врем\я
hours= now.getHours();
minutes= now.getMinutes();
seconds= now.getSeconds();
timeStr= "" + hours;
timeStr+= ((minutes < 10) ? ":0" : ":") + minutes;

// дата
date= now.getDate();
month= now.getMonth()+1;
year= now.getYear();
dateStr= "" + date;
dateStr+= ((month < 10) ? "/0" : "/") + month;
dateStr+= "/" + year;




ostStr= "";
x = (ex.getTime() - now.getTime())/1000;
ostStr= Math.floor(x/60/60/24) + ' д. ';
//ostStr = ostStr + Math.floor(x/60/60) + ' ч. ';
//ostStr = ostStr + Math.floor(x/60/60/24)*24 + ' ч. ';
ostStr = ostStr + Math.floor(x/60/60-Math.floor(x/60/60/24)*24) + ' ч. ';
ostStr = ostStr + Math.floor((x/60/60 - Math.floor(x/60/60))*60) + ' мин. ';
x = (((x/60/60 - Math.floor(x/60/60))*60) - Math.floor((x/60/60 - Math.floor(x/60/60))*60))*60;
ostStr = ostStr + Math.floor(x) + ' сек. ';

document.getElementById('clock').innerHTML = '<?php echo ping('172.19.97.162','300'); ?>'+'---'+ostStr;

Timer= setTimeout("clock()",3000);}

clock();
-->
</script>

   
 
 автор: 12345   (06.12.2006 в 15:25)   письмо автору
 
   для: demon   (06.12.2006 в 15:03)
 

Может заинтересовать статья про идущие часы серверного времени на клиенте - http://javascript.aho.ru/example/xmp001/timeServer.php . Время сервера берётся 1 раз при загрузке. В вашем скрипте пингуется другой сервер - возможно, он не дожидается ответа.

Там, во второй части как раз собирался решить этот вопрос - опросить серверы с точным временем с хоста, проголосовать за точное время, подать ответ на клиента.

   
 
 автор: DEMON   (06.12.2006 в 16:44)   письмо автору
 
   для: 12345   (06.12.2006 в 15:25)
 

Да со временем проблем нет, оно тикает и взято просто для примера, а почему тогда первый раз пинг выполняется а последующие разы нет?

   
 
 автор: DEMON   (06.12.2006 в 16:50)   письмо автору
 
   для: 12345   (06.12.2006 в 15:25)
 

а еще вопросик можно это как у тебя скрипт работает
Dphp=<?=gmmktime()?>*1000;)
у меня когда пишу
document.getElementById('clock').innerHTML = '<?php =ping('172.19.97.162','300') ?>'+'---'+ostStr;
выходит ошибка
Parse error: parse error, unexpected '=' in C:\Apache\www\test.php on line 54

   
 
 автор: coloboc66   (06.12.2006 в 17:48)   письмо автору
 
   для: DEMON   (06.12.2006 в 16:50)
 

<?php =ping Убрать знак равенства

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования