ajax mehrere Requests und opera

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ajax mehrere Requests und opera

    Ich habe nun folgenden Code ausprobiert um mehrere Requests auszuführen:

    Quellcode

    1. <head>
    2. <meta http-equiv="Pragma" content="no-cache">
    3. <meta http-equiv="Cache-Control" content="no-cache">
    4. <meta http-equiv="Expires: now">
    5. <script type="text/Javascript">
    6. <!--
    7. function createXMLHttpRequest() {
    8. var ua;
    9. if(window.XMLHttpRequest) {
    10. try {
    11. ua = new XMLHttpRequest();
    12. } catch(e) {
    13. ua = false;
    14. }
    15. } else if(window.ActiveXObject) {
    16. try {
    17. ua = new ActiveXObject("Microsoft.XMLHTTP");
    18. } catch(e) {
    19. ua = false;
    20. }
    21. }
    22. return ua;
    23. }
    24. /* -----------------
    25. /** Verarbeitet einen Request zur Zeit. Wenn weiter folgen, werden sie in eine Warteschlange eingeordnet und bei gelegenheit verarbeitet.
    26. * @param file - Die zu verarbeitende Datei
    27. * @param queryString - POST String
    28. * @param div - DIV Bereich, der die Ausgabe erhält
    29. *
    30. * @author M.Brammer
    31. * @version 1.0
    32. */
    33. queue = new Array();
    34. var xmlHttp = createXMLHttpRequest();
    35. function sendRequestneu(file, queryString, div) {
    36. if(xmlHttp) {
    37. /* Request Daten in die Warteschlange setzen, falls der vorherige noch nicht abgeschlossen ist */
    38. if(xmlHttp.readyState == 1 || xmlHttp.readyState == 2 || xmlHttp.readyState == 3) {
    39. queueLength = queue.length;
    40. queue[queueLength] = new Array();
    41. queue[queueLength][0] = file;
    42. queue[queueLength][1] = queryString;
    43. queue[queueLength][2] = div;
    44. //document.getElementById(div).innerHTML = 'In der Warteschlange...'; //Optionaler Infotext
    45. } else {
    46. if(queryString == "") {
    47. xmlHttp.open('GET', file, true);
    48. } else {
    49. xmlHttp.open('POST', file, true);
    50. xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    51. xmlHttp.send(queryString);
    52. }
    53. xmlHttp.onreadystatechange = function () {
    54. if(xmlHttp.readyState == 2) {
    55. //document.getElementById(div).innerHTML = 'Lade Inhalt...';
    56. }
    57. if(xmlHttp.readyState == 4) {
    58. if(xmlHttp.status == 200) {
    59. document.getElementById(div).innerHTML = xmlHttp.responseText;
    60. } else if(xmlHttp.status == 404) {
    61. document.getElementById(div).innerHTML = 'Die Datei wurde nicht gefunden!';
    62. }
    63. /* Warteschlange abarbeiten */
    64. queueLength = queue.length;
    65. if(queueLength != 0) {
    66. sendRequestneu(queue[0][0], queue[0][1], queue[0][2]);
    67. queue.shift(); //Erstes Element entfernen, den Rest eine Position nach vorne rücken
    68. }
    69. }
    70. };
    71. if(queryString == "") {
    72. xmlHttp.send(null);
    73. }
    74. }
    75. }
    76. }
    77. function countdown()
    78. {
    79. sendRequestneu("quoten.php", "", "quoten");
    80. sendRequestneu("spiel.php", "", "spiel");
    81. setTimeout("countdown()",3000);
    82. }
    83. </head>
    84. <body onLoad="countdown();">
    85. <span id="spiel"></span>
    86. <div id=quoten></div>
    87. </body>
    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:

    Quellcode

    1. function sendRequest2() {
    2. req.open("get", 'spiel.php');
    3. req.onreadystatechange = handleResponse2;
    4. req.send(null);
    5. }
    6. function handleResponse2() {
    7. if(req.readyState == 4){
    8. document.getElementById('spiel').innerHTML = "";
    9. document.getElementById('spiel').innerHTML = req.responseText;
    10. countdown();
    11. }
    12. }
    13. function countdown()
    14. {
    15. sendRequest2();
    16. setTimeout("countdown()",3000);
    17. }
    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.
  • opera + ajax

    Ich habe nun folgendes ausprobiert:

    Quellcode

    1. function sendAlert (file, queryString, div) {
    2. alert (file);
    3. }
    4. function countdown()
    5. {
    6. sendAlert("quoten.php", "", "quoten");
    7. sendAlert("spiel.php", "", "spiel");
    8. setTimeout("countdown()",3000);
    9. }
    Alles anzeigen


    Wenn ich nun die Seite im Opera öffne, kommt alle 3 Sekunden einmal "quoten.php" und "spiel.php" als Alertanzeige.

    Etwas ähnliches habe ich nun auch im IE 6.0 festgestellt.
    Im IE werden beide Seiten (quoten.php und seiten.php) geladen, aber nur die Seite spiel.php immer neu aktualisiert.

    Nur im Firefox funktioniert alles wunderbar.

    Hoffe da kann mir nochmals jemand weiterhelfen.
    Vielen Dank

  • Etwas ähnliches habe ich nun auch im IE 6.0 festgestellt.
    Im IE werden beide Seiten (quoten.php und seiten.php) geladen, aber nur die Seite spiel.php immer neu aktualisiert.


    Dieses Phänomen tritt nun nicht mehr auf.
    Beim Opera besteht das Problem aber nach wie vor.

    Hoffe da hat noch jemand eine Idee dazu.

    Vielen Dank für jede Antwort
    Hubert