Moin!
http.open('get','tm_ajax.php?'+ajaxParameter );
http.onreadystatechange = updateNewContent;
http.send(null);Die Funktion updateNewContent wird aufgerufen, wenn eine Nachricht eintrifft?
Nein die Funktion wird aufgerufen, wenn sich am ready-State was ändert. Das ist im Verlauf eines Requests durchaus mehrfach der Fall - so genau habe ich mir das nicht angeschaut, aber die in allen Funktionen erfolgte Abfrage, ob der readyState==4 ist und ob dann tatsächlich HTTP-Status 200 oder 304 geschickt wurde, legen genau diese Vermutung nahe.
Auch noch zwei Stunden später?
Wenn ein HTTP-Request zwei Stunden dauern darf, bis er erfolgreich abgeschlossen werden kann, dann ja. Vermutlich wird aber vorher irgendeine Komponente (Server, Browser, Proxy, Router) einen Timeout verursachen.
Bedenke auch, dass du für die gesamte Zeitdauer einen Prozess auf dem Webserver zur Nicht-Beantwortung dieses Requests blockierst.
Dann müsste also das Programm tm_ajax.php auf die eigentliche Anfrage NICHT reagieren, sondern erst, wenn die Eingabe im zweiten Programm abgeschlossen ist?
Wenn tm_ajax.php durch einen AJAX- oder sonstigen Request aufgerufen wird, ist dieses Skript ganz allein für die Behandlung und erfolgreiche Beantwortung verantwortlich.
Hmm - und wenn mehrere User auf tm_ajax.php warten? Mir ist das Konzept nicht klar.
Dann sind mehrere Prozesse mit der Ausführung einer jeweiligen Kopie dieses Skripts beschäftigt.
Ab 250 wartenden Usern hast du dann spätestens ein Problem, weil der Apache ohne Neukompilierung unter Linux seine maximale, im Quelltext gesetzte Grenze der Anzahl laufender Prozesse erreicht.
- Sven Rautenberg
My sssignature, my preciousssss!