Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   По PHP + JavaScript вопросец (https://forum.antichat.xyz/showthread.php?t=129426)

NC22 12.07.2009 13:58

По PHP + JavaScript вопросец
 
Есть такой код:
PHP код:

var id = <? echo $User->ShowID(); ?>;
 function update()
 {
 img = new Image();
 img.src= 'session.php?id='+id;
 setTimeout("update()",10000);
 }
<body onLoad="update()">

Он служит проверкой присутствия юзера OnLine. Т.е. по логике каждые 10 секунд отправляет свои данные на указанный скрипт.
Но почему-то срабатывает всего 1 раз - при обновлении, либо при переходе на страничку с этой функцией.
Что не верно / может есть альтернативы не замудренные что бы вызвать PHP скрипт без обновления самой страницы ?

mailbrush 12.07.2009 14:07

Ну а чего ты хотел? У тебя при загрузке страницы стоит ф-ция update(), которая отправляет данные на скрипт, после чего устанавливается таймаут . У тебя нету цикла, который бы повторно отправлял через 10 сек.

FireFenix 12.07.2009 15:20

Цитата:

Сообщение от NC22
Есть такой код:
PHP код:

var id = <? echo $User->ShowID(); ?>;
 function update()
 {
 img = new Image();
 img.src= 'session.php?id='+id;
 setTimeout("update()",10000);
 }
<body onLoad="update()">

Он служит проверкой присутствия юзера OnLine. Т.е. по логике каждые 10 секунд отправляет свои данные на указанный скрипт.
Но почему-то срабатывает всего 1 раз - при обновлении, либо при переходе на страничку с этой функцией.
Что не верно / может есть альтернативы не замудренные что бы вызвать PHP скрипт без обновления самой страницы ?

юзай setInterval вместо setTimeout

setTimeout - выполнит 1 раз по истечению времени
setInterval - выполняет многократно по истечению времени, пока не будет остановлено

NC22 12.07.2009 15:58

Цитата:

setTimeout("update()",10000);
код повнимательней посмотри =/ там идет повторение за счет обращения опять же к этой функции.


Время: 20:06