Ankündigung

Einklappen
Keine Ankündigung bisher.

Javascript läd unendlich lange

Einklappen

Neue Werbung 2019

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

  • Javascript läd unendlich lange

    PHP-Code:
        var gbshow null;
        
        function 
    show() {
            if (
    gbshow.readyState == 4) {
                if (
    gbshow.status == 200) {
                    var 
    antwort gbshow.responseText;
                    
    document.writeln(antwort);
                    
    //document.getElementById("neu").innerHTML += antwort;
                
    }

            }
            
        }

        if (
    gbshow == null) {
            
    gbshow = new XMLHttpRequest();

            
    gbshow.open("GET","gb_show.php?gbid=" dd_gbid);
            
    gbshow.send(null);
            
    gbshow.onreadystatechange show;
            
        } 
    Moin,

    ich habe ein js-script und dieses scheint endlos zu laden. Wenn ich allerdings am Ende ein alert() einfüge, so erscheint dieses und die Webseite läd nicht mehr weiter.
    Komische daran ist, dass selbst wenn es noch am Laden ist, der Inhalt richtig dargestellt wird. Nur sind dann keine Links, etc. nutzbar.

    Jemand eine Idee, wo das Problem hängt?
    Look at This!
    Digital-Duty.DE
    Für Syntax-Fehler übernehme ich keine Haftung!

  • #2
    Hi,

    versuche mal
    PHP-Code:
    gbshow.open("GET","gb_show.php?gbid=" dd_gbid); 
    durch
    PHP-Code:
    gbshow.open("GET","gb_show.php?gbid=" dd_gbidtrue); 
    zu ersetzen. Ansonsten installiere dir mal Firebug und schaue mal, was das sagt. Das kling irgendwie nach einem hängenden Request. Wenn's alles nichts bringt, starte auch mal den Server neu, evtl. ist da noch irgendeine Verbindung offen. Das hatten wir hier schon ein paar Mal.
    Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

    Kommentar


    • #3
      Das mit dem "true" hatte ich eben auch schon eingepflegt gehabt, hatte da auch schon die Idee gehabt.

      Server neustartn geht leider nicht, da es direkt auf einem Webspace liegt.
      Look at This!
      Digital-Duty.DE
      Für Syntax-Fehler übernehme ich keine Haftung!

      Kommentar


      • #4
        Dann starte mal den Browser neu, evtl. auch einfach mal die Internetverbindung kurzzeitig kappen und den Router neu einwählen lassen, um eine neue IP zu bekommen. Wenn es alles nichts hilft, dann schau mal, was Firebug sagt. Vielleicht ist irgendwo in deine Skript noch eine Endlosschleife drinnen und es liegt gar nicht an einer offenen Verbindung. Wenn auch Firebug nichts sagt, dann fange mal mit Schritt-Für-Schritt-Debugging an.
        Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

        Kommentar


        • #5
          Hab es heute kurz auf Arbeit getestes, gleiches Problem. Es liegt an dem geposteten Teil. Wenn dieser nicht drin ist, läd es nicht ewig.
          Look at This!
          Digital-Duty.DE
          Für Syntax-Fehler übernehme ich keine Haftung!

          Kommentar


          • #6
            Na, dann fange mal mit Schritt-Für-Schritt-Debugging. Zuerst würde ich das veraltete document.writeln() da rausnehmen und durch ein schöneres Konstrukt ersetzen. Als nächstes Mal ein altert() innerhalb der Callback-Funktion etc. pp. Du weißt schon.
            Außerdem solltest du vielleicht die send()-Funktion erst aufrufen, nachdem du gbshow.onreadstatechange die Callback-Funktion zugewiesen hast.
            Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

            Kommentar


            • #7
              Wenn document.writeln() veraltet ist, gibt es etwas neueres? Denn an dieser Stelle liegt es.

              oder macht man es nur noch über DOM?
              Look at This!
              Digital-Duty.DE
              Für Syntax-Fehler übernehme ich keine Haftung!

              Kommentar


              • #8
                Richtig, DOM ist das Stichwort. Wenn du dich aber nicht mit den zugegebenermaßen etwas störrischen DOM-Knoten-Funktionen herumschlagen willst, dann kannst du dich auch einfach auf die normalen get-Methoden getElementById() und getElementsByTagName() beschränken und dann innerHTML nutzen. Das ist der Mittelweg zwischen striktem DOM und document.write[ln](). Ich glaube, innerHTML ist nicht vom W3C genormt, funktioniert aber in allen Browsern, die ich kenne.
                Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                Kommentar


                • #9
                  Okay, hatte gehofft ich drum herum vieles umzushreiben. Ich mach mich dann mal dran.
                  Look at This!
                  Digital-Duty.DE
                  Für Syntax-Fehler übernehme ich keine Haftung!

                  Kommentar


                  • #10
                    PHP-Code:
                    var link document.createElement("link");
                        var 
                    cssrel document.createAttribute("rel");
                        
                    cssrel.nodeValue "stylesheet";
                        var 
                    csstype document.createAttribute("type");
                        
                    csstype.nodeValue "text/css";
                        var 
                    csshref document.createAttribute("href");
                        
                    csshref.nodeValue "dark_blue.css";
                        
                    document.getElementsByTagName("link")[0].setAttributeNode(cssrel);
                        
                    document.getElementsByTagName("link")[0].setAttributeNode(csstype);
                        
                    document.getElementsByTagName("link")[0].setAttributeNode(csshref);

                            
                    head.appendChild(link); 
                    Fehler: document.getElementsByTagName("link")[0] is not defined

                    Bei einem DIV Tag hat es Problemlos geklappt. Unterscheidet sich in der Richtung "link"? Oder hab ich mich vertippt?

                    PS: Wollte keinen neuen Thread aufmachen.
                    Look at This!
                    Digital-Duty.DE
                    Für Syntax-Fehler übernehme ich keine Haftung!

                    Kommentar


                    • #11
                      Ja, so wird das aber auch nicht funktionieren. Was willst du denn überhaupt erreichen?
                      Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                      Kommentar


                      • #12
                        PHP-Code:
                            var html document.createElement("html");
                            var 
                        head document.createElement("head");
                            var 
                        link document.createElement("link");
                            var 
                        cssrel document.createAttribute("rel");
                            
                        cssrel.nodeValue "stylesheet";
                            var 
                        csstype document.createAttribute("type");
                            
                        csstype.nodeValue "text/css";
                            var 
                        csshref document.createAttribute("href");
                            
                        csshref.nodeValue "dark_blue.css";
                            
                        document.getElementsByTagName("link")[0].setAttributeNode(cssrel);
                            
                        document.getElementsByTagName("link")[0].setAttributeNode(csstype);
                            
                        document.getElementsByTagName("link")[0].setAttributeNode(csshref);
                            var 
                        body document.createElement("body");
                            var 
                        bodyid document.createAttribute("id");
                            
                        bodyid.nodeValue "inhalt";
                            
                        document.getElementsByTagName("body")[0].setAttributeNode(bodyid);
                            var 
                        div document.createElement("div");
                            var 
                        divid document.createAttribute("id");
                            
                        divid.nodeValue "neu";
                            
                        document.getElementsByTagName("div")[0].setAttributeNode(divid);
                            var 
                        document.createElement("p");
                            var 
                        ponclick document.createAttribute("onlick");
                            
                        ponclick.nodeValue "neew()";
                            var 
                        pstyle document.createAttribute("style");
                            
                        pstyle.nodeValue "width:100px;";
                            
                        document.getElementsByTagName("p")[0].setAttributeNode(ponclick);
                            
                        document.getElementsByTagName("p")[0].setAttributeNode(pstyle);
                            var 
                        img document.createElement("img");
                            var 
                        imgsrc document.createAttribute("src");
                            
                        imgsrc.nodeValue "../img/neuer_eintrag.png";    
                            var 
                        imgalt document.createAttribute("alt");
                            
                        imgalt.nodeValue "Neuer Eintrag";
                            
                        document.getElementsByTagName("img")[0].setAttributeNode(imgsrc);
                            
                        document.getElementsByTagName("img")[0].setAttributeNode(imgalt);

                            
                        html.appendChild(head);
                            
                        head.appendChild(link);
                            
                        html.appendChild(body);
                            
                        body.appendChild(div);
                            
                        div.appendChild(p);
                            
                        p.appendChild(img); 
                        Das ist das HTML Gerüst welches ich mir gebaut habe. Dieses möchte ich für die Ausgabe nutzen. Doch bei dem link hängt er fest. Wieso kann das nicht funktionieren?
                        Look at This!
                        Digital-Duty.DE
                        Für Syntax-Fehler übernehme ich keine Haftung!

                        Kommentar


                        • #13
                          Ich glaube, du solltest dich noch einmal näher mit den DOM-Funktionen beschäftigen. Ich schlug dir außerdem noch innerHTML vor.
                          Du hast aber meine Frage noch nicht beantwortet: was willst du überhaupt erreichen?
                          Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                          Kommentar


                          • #14
                            Also ich habe folgendes. Ich bin in eine andere Seite diese javascript Datei ein. Und um mit dem Script eine Ausgabe machen zu können, lege ich einen neuen HTML-Baum an. Um diesen dann durch ein httprequest mit Inhalten zu füllen.
                            Ich hatte mir auf selfhtml angeschaut wie das mit dem createElement und Co funktioniert. Den div-Tag wird ohne Probleme gefunden. Für mich nur unerklärlich wieso er bei link-Tag den Tag nicht findet. Hab mir schon paar weitere Examples angeschaut aber leider noch keine passende Antwort dazu gefunden.
                            Look at This!
                            Digital-Duty.DE
                            Für Syntax-Fehler übernehme ich keine Haftung!

                            Kommentar


                            • #15
                              Nochmal: du willst JavaScript per Ajax vom Server laden und einbinden? Das kannst du vergessen. JavaScript, das nach DocumentReady eingebunden wurde, kann nur noch per eval() ausgeführt werden.
                              Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                              Kommentar

                              Lädt...
                              X