Hallo,
in einem Beispielprogramm sende ich ein Ajax-Request an einen zweiten PC, auf dem ein Apache-Webserver mit einem PHP-Antwortskript läuft. Zwischen Request und Server-Response vergehen gerade einmal 9 ms. Wenn ich in der onreadystatechanged-Funktion, in der ich die Serverantwort auswerte am Ende erneut einen Request sende, kann ich in Wireshark eine Verzögerung von 250 ms messen, obwohl nur eine Zeile Javascript-Code ausgeführt wird, in der eine Variable um 1 erhöht wird.
Warum tritt diese Verzögerung zwischen den Ajax-Requests auf? (Ich benutze Firefox 3.6 und Firebug 1.6 -> dort kann ich die Zeit von 250 ms auch messen). Mein Ajax-Skript funktioniert an sich auch - nur halt mit Verzögerung.
Hier ist mein Quellcode:
var request = null;
var Test = 0;
function ajaxinit() {
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
request = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
try {
request = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e) {}
}
}
if (!request) {
return false;
}
request.onreadystatechange = interpretRequest;
SendReq('test');
return true;
}
function SendReq(myVar) {
if (request) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch(e) {}
var url = 'http://192.168.178.3/AjaxTests/ServerAnswer.php?myVar=' + myVar;
request.open('get', url, true);
request.send(null);
}
}
function interpretRequest() {
if (request.readyState == 4 && request.status == 200) {
Test++;
SendReq('test');
}
}