asseskiller
Lt. Junior Grade
- Registriert
- Sep. 2005
- Beiträge
- 447
Hallo ich habe mir im Internet folgenden Code gesucht und ihn leicht Modifiziert
Das hier ist die test_2.php
Mein Problem ist das die Abfragequeue scheinbar in Firefox nicht funktionier. In Google Chrome funktioniert alles Prima. Aber im FF führt er nur 2 Abfragen aus und in Firebug sehe ich folgendes Bild hier klicken
Ist die Queue irgendwie falsch?
Danke für die Antwort im Vorraus
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<script type="text/javascript" language="javascript">
/************************************
AJAX Request Queue
url - ajaxcall
container - div to fill with innerHTML
************************************/
var queue = new Array();
var httpRequestObjectBusy = false;
var httpRequestObject = gethttpRequestObject();
i=0;
function aQueue(url,container)
{
//alert(i);
if(httpRequestObjectBusy==true)
{
queue.push(new Array(url,container));
}
else
{
httpRequestObjectBusy=true;
httpRequestObject.open('GET',url,true);
httpRequestObject.send(null);
httpRequestObject.onreadystatechange = function()
{
if( httpRequestObject.readyState == 4 )
{
httpRequestObjectBusy=false;
var text = httpRequestObject.responseText;
document.getElementById(container).innerHTML = httpRequestObject.responseText;
if(queue.length!= 0)
{
var element1 = queue[0][0];
var element2 = queue[0][1];
queue.shift();
i++;
aQueue(element1, element2);
}
}
};
}
}
function gethttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest(); //Not IE
} else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP"); //IE
} else {
alert("Your browser doesn't support the XmlHttpRequest object.<br>Better upgrade to Firefox.");
}
}
</script>
<div onclick="aQueue('test_2.php?param=a','test1'); aQueue('test_2.php?param=b','test2'); aQueue('test_2.php?param=c','test3'); aQueue('test_2.php?param=d','test4');"><a href="#">3 Anfragen "gleichzeitig" ausführen</a></div>
<div id='test1'></div>
<div id='test2'></div>
<div id='test3'></div>
<div id='test4'></div>
</body>
</html>
Das hier ist die test_2.php
PHP:
<?php
if($_GET['param'] == 'a')
{echo '1<br>';}
if($_GET['param'] == 'b')
{echo '2<br>';}
if($_GET['param'] == 'c')
{echo '3<br>';}
if($_GET['param'] == 'd')
{echo '4<br>';}
if($_GET['param'] == 'e')
{echo '5<br>';}
?>
Ist die Queue irgendwie falsch?
Danke für die Antwort im Vorraus