Das Problem ist, das clearTimeout den Timer nicht löscht. Nach 2 Sek. wird also trotzdem die Funktion newXmlReqC() gestartet.
Dann machst du etwas falsch. Mein Safari kann einen Timeout stoppen.
Ich hab mir aber dein Konstrukt nicht genau angeschaut, es ist aber auf jeden Fall nicht optimal. Dass du das xmtlHTTP Objekt ständig überschreibst und neu erzeugst ist ungünstig und führt auch im IE zu Problemen. Du kannst es ohne Probleme mehrfach verwenden, aber du darfst es auf keinen Fall überschreiben solange der Request noch nicht vollständig abgearbeitet ist.
Das der Server ab und zu hängt ist aber auch kein Wunder, wenn du ihn derart mit abfragen bombadierst. Auch bin mir nicht sicher ob die Logik deines Ablaufs überhaupt zu einem sinnvollen Ergebnis führt. Hier laufen alle Timer und Events kreuz und quer ohne sinnvollen abfragen.
Struppi.