AJAX Performance Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • AJAX Performance Problem

    Hi,

    folgender codeausschnitt:

    PHP-Code:

    <script type="text/javascript">
        var request = false;

        function setRequest(str) {

            if (window.XMLHttpRequest) {
                request = new XMLHttpRequest(); // Mozilla, Safari, Opera
            } else if (window.ActiveXObject) {
                try {
                    request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
                } catch (e) {
                    try {
                        request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
                    } catch (e) {}
                }
            }

            if (!request) {
                alert("Kann keine XMLHTTP-Instanz erzeugen");
                return false;
            } else {
                var url = "lib/message_check.php?q="+str;
                request.open('get', url, true);
                request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                request.send(null);
                request.onreadystatechange = interpretRequest;
            }
        }

        function interpretRequest() {
            switch (request.readyState) {
                case 4:
                    if (request.status != 200) {
                        alert("Der Request wurde abgeschlossen, ist aber nicht OK (AJAX Fehler)\nFehler:"+request.status)+"!\n\nBitte den Admin informieren!";
                    } else {
                     var content = request.responseText;

                     if (content != "")
                     {
                     
                        var FensterEins = null; 
                        
                         if (FensterEins && !FensterEins.closed) 
                         { 
                          FensterEins.focus(); 
                         } 
                         else 
                         { 
                          FensterEins = window.open("lib/popup_read.php?id="+request.responseText,"Nachricht", "width=1000,height=500");
                         } 
                         
                         delete request;
                         request = null;                         
             
                     }
                     content = "";
                    }
                    break;
                default:
                    break;
            }
        }

    window.onload = "setRequest(<?php echo $qq?>)";
    interval = window.setTimeout("setRequest(<?php echo $qq?>);", 20000);
    </script>    
         
        </head>
        <body onload="setRequest(<?php echo $qq?>)">
    ...hab ich soweit eingebunden und funktioniert auch wunderbar. Problem ist jedoch, das nach einer längeren Zeit, die Seite immer langsamer wird und irgendwann sich aufhängt. In Firebug kann ich sehen, das die "Anfragen sich stapeln" sag ich mal. Wie kann ich die Performance dafür verbessern?
    Hier handelt es sich um eine HeaderDatei, die in allen anderen Seiten einfach includet wird. Ich hatte gehofft mit der delete Geschichte, wieder etwas "speicher frei zu geben", aber das funktioniert nicht wirklich. In der aufgerufenen PHP Datei wird mittels PDO 2 SQL Statements ausgeführt und die Werte zurück gegeben.

    Danke.

    mfg streuner
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"
Lädt...
X