Essenzialmente ti basta studiarti l'oggetto XMLHTTPrequest e la funzione SetTimeout di javascript, ma se vuoi un consiglio spassionato, scegliti una delle tante librerie javascript disponibili (personalmente preferisco jquery, ma in sostanza non ci sono poi tante differenze) e usala per fare le chiamate ajax, è molto più comodo che non dover usare direttamente XMLHTTPrequest.
L'unico altro accorgimento, ricordati che se la url che carichi via ajax può essere sempre la stessa per un tot di volte, per essere certo che davvero venga caricata dal server e non dalla cache del browser devi aggiungerci un parametro casuale: per capirci, se la tua intenzione è di fare caricare ad ajax queste url:
www.esempio.it/ping.php?chat=1
www.esempio.it/ping.php?chat=1
www.esempio.it/ping.php?chat=1
www.esempio.it/ping.php?chat=1
dovresti invece fare in modo che vengano chiamate:
www.esempio.it/ping.php?chat=1&rand=16783456
www.esempio.it/ping.php?chat=1&rand=87654832
www.esempio.it/ping.php?chat=1&rand=89676735
www.esempio.it/ping.php?chat=1&rand=56389268
in cui rand è generato sempre casualmente, ed è così grande che è molto difficile che sia uguale!
Ciao!