PDA

Просмотр полной версии : По PHP + JavaScript вопросец


NC22
12.07.2009, 13:58
Есть такой код:

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
Есть такой код:

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); код повнимательней посмотри =/ там идет повторение за счет обращения опять же к этой функции.