Ich habe nun folgenden Code ausprobiert um mehrere Requests auszuführen:
Alles anzeigen
Das ganze funktioniert auch wunderbar im IE oder im Firefox, nur wenn ich den Code im Opera auführe wird nur einmal die Datei quoten.php eingebunden, aber nicht mehr aktualisiert und die Datei spiel.php wird gar nicht angezeigt.
Wenn ich folgendes Request im Opera teste:
Alles anzeigen
Wird im Opera die Datei spiel.php angezeigt und auch laufend aktualisiert, aber leider funktioniert dies nur mit einem Request.
Hoffe da kann mir jemand weiterhelfen, wie man zwei Requests auch im Opera anzeigen kann bzw. was ich da noch berücksichtigen muss.
Vielen Dank für jede Antwort.
Quellcode
- <head>
- <meta http-equiv="Pragma" content="no-cache">
- <meta http-equiv="Cache-Control" content="no-cache">
- <meta http-equiv="Expires: now">
- <script type="text/Javascript">
- <!--
- function createXMLHttpRequest() {
- var ua;
- if(window.XMLHttpRequest) {
- try {
- ua = new XMLHttpRequest();
- } catch(e) {
- ua = false;
- }
- } else if(window.ActiveXObject) {
- try {
- ua = new ActiveXObject("Microsoft.XMLHTTP");
- } catch(e) {
- ua = false;
- }
- }
- return ua;
- }
- /* -----------------
- /** Verarbeitet einen Request zur Zeit. Wenn weiter folgen, werden sie in eine Warteschlange eingeordnet und bei gelegenheit verarbeitet.
- * @param file - Die zu verarbeitende Datei
- * @param queryString - POST String
- * @param div - DIV Bereich, der die Ausgabe erhält
- *
- * @author M.Brammer
- * @version 1.0
- */
- queue = new Array();
- var xmlHttp = createXMLHttpRequest();
- function sendRequestneu(file, queryString, div) {
- if(xmlHttp) {
- /* Request Daten in die Warteschlange setzen, falls der vorherige noch nicht abgeschlossen ist */
- if(xmlHttp.readyState == 1 || xmlHttp.readyState == 2 || xmlHttp.readyState == 3) {
- queueLength = queue.length;
- queue[queueLength] = new Array();
- queue[queueLength][0] = file;
- queue[queueLength][1] = queryString;
- queue[queueLength][2] = div;
- //document.getElementById(div).innerHTML = 'In der Warteschlange...'; //Optionaler Infotext
- } else {
- if(queryString == "") {
- xmlHttp.open('GET', file, true);
- } else {
- xmlHttp.open('POST', file, true);
- xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
- xmlHttp.send(queryString);
- }
- xmlHttp.onreadystatechange = function () {
- if(xmlHttp.readyState == 2) {
- //document.getElementById(div).innerHTML = 'Lade Inhalt...';
- }
- if(xmlHttp.readyState == 4) {
- if(xmlHttp.status == 200) {
- document.getElementById(div).innerHTML = xmlHttp.responseText;
- } else if(xmlHttp.status == 404) {
- document.getElementById(div).innerHTML = 'Die Datei wurde nicht gefunden!';
- }
- /* Warteschlange abarbeiten */
- queueLength = queue.length;
- if(queueLength != 0) {
- sendRequestneu(queue[0][0], queue[0][1], queue[0][2]);
- queue.shift(); //Erstes Element entfernen, den Rest eine Position nach vorne rücken
- }
- }
- };
- if(queryString == "") {
- xmlHttp.send(null);
- }
- }
- }
- }
- function countdown()
- {
- sendRequestneu("quoten.php", "", "quoten");
- sendRequestneu("spiel.php", "", "spiel");
- setTimeout("countdown()",3000);
- }
- </head>
- <body onLoad="countdown();">
- <span id="spiel"></span>
- <div id=quoten></div>
- </body>
Das ganze funktioniert auch wunderbar im IE oder im Firefox, nur wenn ich den Code im Opera auführe wird nur einmal die Datei quoten.php eingebunden, aber nicht mehr aktualisiert und die Datei spiel.php wird gar nicht angezeigt.
Wenn ich folgendes Request im Opera teste:
Quellcode
- function sendRequest2() {
- req.open("get", 'spiel.php');
- req.onreadystatechange = handleResponse2;
- req.send(null);
- }
- function handleResponse2() {
- if(req.readyState == 4){
- document.getElementById('spiel').innerHTML = "";
- document.getElementById('spiel').innerHTML = req.responseText;
- countdown();
- }
- }
- function countdown()
- {
- sendRequest2();
- setTimeout("countdown()",3000);
- }
Wird im Opera die Datei spiel.php angezeigt und auch laufend aktualisiert, aber leider funktioniert dies nur mit einem Request.
Hoffe da kann mir jemand weiterhelfen, wie man zwei Requests auch im Opera anzeigen kann bzw. was ich da noch berücksichtigen muss.
Vielen Dank für jede Antwort.