Jak wysłać dane do klienta?

Witam!

Chciałbym się zapytać jak najlepiej wysyłać w czasie rzeczywistym czasie dane pomiędzy dwoma klientami?

Na przykład klient numer 1 ma jakieś koordynaty x i y po czym wysyła je do serwera, a klient numer 2 je odbiera.

Wszystko potrzebne mi jest do tego skryptu Java Script.

Chciałbym aby przestawienie “Elementu 1” było widoczne u innych w czasie rzeczywistym.

Pozdrawiam!

Sprawa jest dość niewygodna. W teorii można się bawić ciągle odpytując serwer za pomocą AJAXa, ale na bank nie będzie to wydajne. To czego Ci brakuje to tzw. sockety, które jednak w JavaScript pojawiły się dopiero teraz w standarcie HTML5. Problemem jest fakt że właściwie jeszcze nie istnieje przeglądarka która to porządnie obsługuje. Tutaj szczegóły: http://stackoverflow.com/questions/1253683/what-browsers-support-html5-websocket-api

Podsumowując na chwilę obecną zalecałbym albo AJAXa (przy czym będzie to bardzo niewydajne i bardzo obciążające dla serwera) albo aplikację typu Flash lub java (applet)

Czyli zrobić to za pomocą AJAXa, tylko jak? Strona miała by być cały czas odświeżana? Na stronie jeśli przyciśniesz przycisk “Move”, to skrypt przesunie Element animacją, a jeśli strona będzie odświeżana to to się nie wykona.

Odświeżana? AJAX to technologia która jest po to aby nie trzeba było odświeżać strony.

User u siebie przesuwa coś to wysyła nowe koordynaty na serwer. Reszta klientów np co pół sekundy wysyła do serwera zapytanie czy nie ma nowych koordynató

Ok, mam pytanko jeszcze jedno: jak wywołać funkcje co jakiś czas w AJAX?

funkcja setTimeout oczywiście: http://www.w3schools.com/js/js_timing.asp

var c=0;

var t;

var timer_is_on=0;


function timedCount()

{

document.getElementById('txt').value=c;

c=c+1;

t=setTimeout("timedCount()",1000);

}


function doTimer()

{

if (!timer_is_on)

  {

  timer_is_on=1;

  timedCount();

  }

}

Ok, ma to wyglądać tak?:

setTimeout("funkcja którą chce odświerzyć()",1000);

i nie chce aby uruchamiać funkcje z

document.getElementById

moge po prostu wywować funkcje tak:

timedCount();

Kompletnie nie ogarniam o co Ci chodzi. Jeśli chcesz żeby funkcja wywoływała się co sekundę to wystarczy tak:

setTimeout("funkcjaDoWywolania()",1000);


function funkcjaDoWywolania(){

//tutaj funkcja coś robi

setTimeout("funkcjaDoWywolania()",1000);

}