AJAX: Rückgabe und Asuführung von JS-Code?

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

  • AJAX: Rückgabe und Asuführung von JS-Code?

    Wenn ich mit AJAX bis jetzt gearbeitet habe, hab ich immer per AJAX ein PHP-Skript aufgerufen, und per InnerHTML die Ausgabe in einem Div ausgegeben!

    Bevor ich jetzt vielleicht sinnlos rum probiere, ist es möglich in der PHP-Datei entsprechenden JS-Code auszugeben und diesen dann auch in dem eigentlichen HTML-Code zu verwenden. Oder ist das nicht möglich?

    Ich will nämlich bestimmte Werte aus einem Textarea mit einem PHP-Skript prüfen danach entsprechend in zwei andere Textarea schreiben!

  • #2
    Re: AJAX: Rückgabe und Asuführung von JS-Code?

    Das ist eine generelle Design-Frage.

    Wenn du serverseitig Javascript-Code generieren willst, kannst du ihn natürlich bspw. per eval() ausführen lassen.

    Allerdings ist das reichlich unschön. Die Verarbeitungslogik bereits clientseitig definiert zu haben, und ihr vom Server aus nur noch die Daten, die sie braucht um Entscheidungen zu treffen, bereitzustellen, wäre m.E. deutlich vorzuziehen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      gut. ja, stimmt. werde es auch so machen! danke

      Kommentar


      • #4
        mhhh, das problem das es nicht asyncron laufen soll. sondern er soll warten, bis die anwort da ist.

        wenn ich den 3. Parameter in .open auf false setze, sollte es ja gehen, aber dort hängt sich mein browser über ein minute auf, obwohl das PHP-Skript min. nach 15 Sekunden eine antwort bringt.

        Kommentar


        • #5
          Wie wärs mit ein bischen Code?

          Hast du trotz asyncron = false ein onReadyStateChange definiert?

          Kommentar


          • #6
            na selbstverständlich!

            PHP-Code:
            function fncRequest(ip,port,timeout)
            {
              if (
            xmlHttp) {
                
            xmlHttp.open('POST','sources/request.php',false);
                
            xmlHttp.setRequestHeader('Content-Type''application/x-www-form-urlencoded');
                
            xmlHttp.send('ip='+ip+'&port='+port+'&timeout='+timeout);
                
            xmlHttp.onreadystatechange = function () {
                  if (
            xmlHttp.readyState == 4) {
                    return 
            xmlHttp.responseText;
                  }
                }
              }
              return 
            0;

            gibt irgendwie eine andere möglichkeit, zu warten bis der Response da ist! While-Schleife hab ich schon probiert, da meckert der Browser!

            Kommentar


            • #7
              Original geschrieben von frankburian
              na selbstverständlich!
              Das ist auch der Fehler.
              gibt irgendwie eine andere möglichkeit, zu warten bis der Response da ist!
              Wieso eine andere?

              Wenn du dir mal klar machst, was synchron bedeutet ...
              ... dann sollte klar sein, dass bei diesem Vorgehen die restliche Verarbeitung erst weitergeht, wenn das Ergebnis des Requests vorliegt.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                wie "das ist auch der Fehler."?

                Kommentar


                • #9
                  Original geschrieben von frankburian
                  wie "das ist auch der Fehler."?
                  Ich nahm an, das "na selbstverständlich" wäre deine Antwort auf die vorherige Frage nach der Verwendung von onreadystatechange.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    das ist richtig. aber bei dir klangs so, als wenn ich das nicht verwenden dürfte! aber irgendwie muss ich ja auch was passieren, und das eben in xmlHttp.onreadystatechange!

                    Kommentar


                    • #11
                      Original geschrieben von frankburian
                      das ist richtig. aber bei dir klangs so, als wenn ich das nicht verwenden dürfte!
                      Aha, der Beginn von Verständnis ...
                      aber irgendwie muss ich ja auch was passieren, und das eben in xmlHttp.onreadystatechange!
                      Dann wiederhole ich mich mal:
                      Wenn du dir mal klar machst, was synchron bedeutet ...
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        mmh...jetzt versteh ich nur bahnhof. synchron bedeute für mich das zwei oder mehrere Prozessen im gleich Takt laufen! jetzt bin ich durch einander!

                        Kommentar


                        • #13
                          Asynchron bedeutet, ich stosse jetzt etwas an - und reagiere dann später darauf, wenn ich benachrichtigt werde (onreadystatechange), dass das Ergebnis da ist.

                          Synchron bedeutet, ich starte etwas an, das wird durchgeführt - und danach geht's mit dem nächsten Schritt, der Verarbeitung des Ergebnisses, weiter.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            ja ok, aber gibt es denn noch eine andere möglichkeit etwas zu auszuführen außer onreadystatechange?

                            Kommentar


                            • #15
                              habs mit der AjaxRequest Library gelöst. die kümmert sich um alles!
                              http://www.ajaxtoolbox.com/

                              Kommentar

                              Lädt...
                              X