Mam taki skrypcik
// tworzymy zmienna
var object = false;
// tworzymy obiekt XMLHttpRequest (dla IE jest troche inaczej, stad funkcja warunkowa)
if (window.XMLHttpRequest) object = new XMLHttpRequest();
else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
// ponizsza funkcja pobiera dane ze wskazanego zrodla (pliku lub skryptu php) do wskazanego
// DIVa poprzez obiekt XMLHttpRequest
function getData(dataSource, divID)
{
// kontynuuje wylacznie gdy obiekt nie jest zajety
if (object.readyState==4 || object.readyState==0)
{
// tworzy zmienna odpowiadajaca konkretnemu obiektowi na stronie
var obj = document.getElementById(divID);
// czyta z pliku lub wykonuje skrypt
object.open("GET", dataSource);
// definiuje metode obslugi odpowiedzi serwera
object.onreadystatechange = function()
{
// kontynuuje jesli transmisja zostala zakonczona powodzeniem
if (object.readyState == 4 && object.status == 200)
obj.innerHTML= object.responseText;
}
// wysyla zadanie do serwera
object.send(null);
}
}
// w ponizszej funkcji wywolujemy funkcje getData z odpowiednimi parametrami
// oraz wywolujemy ja sama rekurencyjnie po co okreslony czas (w naszym wypadku 1000 ms)
function odswiezaj()
{
getData('czat1.php','czat');
setTimeout("odswiezaj()", 1000);
}
<div style="border:1px solid blue; height:280px;" id="czat"></div>
odswiezaj();
skrypt co 1s wykonuje plik czat1.php (w tle i wyświetla jego zawartość w divie)
Wszystko działa idealnie pod mozilla i opera a oczywiscie w IE nie dziala ;

Co może być źle
Cokolwiek zostanie upuszczone na uklad elektroniczny, spadnie zawsze tam gdzie wyrzadzi najwiecej szkody.