Enrico: Beendet ein "echo"-Befehl eine Ajax-Anfrage?

Hallo,

ich habe in einer php-Datei, die ich über Ajax aufrufe, für verschiedene Ergebnisse der in der php-Datei stattfindenden Auswertungen einen Rückgabewert.

Wird die php-Datei nach einem "echo"-Befehl eigentlich beendet oder läuft sie bis zum Schluss durch?

Wenn letzteres der Fall ist, was ich so nicht mehr mitbekomme, da der Client zwischenzeitlich mit dem erhaltenen Rückgabewert ja schon wieder weiter arbeitet, muss ich dann jeweils nach den "echo"-Befehlen noch "die()" ergänzen oder ist das unnötig?

Danke und Gruß,
Enrico

  1. Hi,

    ich habe in einer php-Datei, die ich über Ajax aufrufe, für verschiedene Ergebnisse der in der php-Datei stattfindenden Auswertungen einen Rückgabewert.
    Wird die php-Datei nach einem "echo"-Befehl eigentlich beendet oder läuft sie bis zum Schluss durch?

    wie kommst du auf die Idee, ein echo würde das Script beenden?
    Im Gegenteil, Ausgaben des Scripts, also beispielsweise mit echo, sind doch genau das, was zum Client übertragen wird.

    Wenn letzteres der Fall ist, was ich so nicht mehr mitbekomme, da der Client zwischenzeitlich mit dem erhaltenen Rückgabewert ja schon wieder weiter arbeitet, ...

    Normalerweise bearbeitet der Client die Antwort erst, wenn sie abgeschlossen, also das zugehörige Script beendet ist.

    muss ich dann jeweils nach den "echo"-Befehlen noch "die()" ergänzen oder ist das unnötig?

    Wenn dein Script sauber aufgebaut ist, erzeugt es nur die Ausgabe, die für den jeweiligen Fall vorgesehen ist, zum Beispiel über eine switch-Anweisung oder eine Folge von mehreren if-Anweisungen. Dann ist ein zusätzliches die() oder exit() nicht nur unsauber, sondern unnötig.

    Ciao,
     Martin

    --
    Die junge Ehefrau weint sich bei ihrer Mutter aus:
    Er hat gesagt, ich soll mich zum Teufel scheren! - Und da kommst du ausgerechnet zu mir?!
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Servus Martin,

      Danke für Deine Antwort.

      Wenn dein Script sauber aufgebaut ist, [...] über eine switch-Anweisung oder eine Folge von mehreren if-Anweisungen [...]

      Ich habe mehrere if-Anweisungen, muss aber dann den Aufbau noch einmal überarbeiten, da nach dem einen oder anderen "echo"-Befehl noch weitere Anweisungen folgen.

      Gruß,
      Enrico

    2. Hi Martin,

      Normalerweise bearbeitet der Client die Antwort erst, wenn sie abgeschlossen, also das zugehörige Script beendet ist.

      Normalerweise? Klingt interessant.
      Gibt es auch Möglichkeiten, Zwischendaten abzuarbeiten?

      Bis jetzt weiß ich nur von Ajax, dass man Textdateiein jeglicher Art (also auch dynamisch mit php generierte) in den "nicht sichtbaren" Browserspeicher laden kann. - Leihenhaft ausgedrückt :-)

      Viele Grüße aus LA

      --
      ralphi
      1. Meine Damen und Herren, habe ich Ihre Aufmerksamkeit?

        Hi Martin,

        Normalerweise bearbeitet der Client die Antwort erst, wenn sie abgeschlossen, also das zugehörige Script beendet ist.

        Normalerweise? Klingt interessant.
        Gibt es auch Möglichkeiten, Zwischendaten abzuarbeiten?

        Nicht mit Ajax. Ajax folgt dem Request-Response-Prinzip, d.h. man kann erst reagieren, wenn die Antwort vollständig eingetroffen ist.

        Aber es gibt andere Technologien namentlich "Server Sent Events" und "WebSockets". Damit ist es möglich, auch auf "Zwischenmeldungen" des Server zu reagieren.

        --
        “All right, then, I'll go to hell.” – Huck Finn
        1. Hi,

          Aber es gibt andere Technologien namentlich "Server Sent Events" und "WebSockets". Damit ist es möglich, auch auf "Zwischenmeldungen" des Server zu reagieren.

          cool :-) websockets hab ich kurz überflogen.

          kann es sein, dass die TCP Verbindung bestehen bleibt?
          Währen damit livestreams bzw. Intervalle von daten möglich?
          Meinst du < IE9 kann das auch (für zB. Win7 Minianwendungen - Wingets)?

          Viele Grüße aus LA

          --
          ralphi
          1. Also -
            hab websocket mit web-socket.js getestet.
            Klappt mit aktuellen Browsern wunderbar :-)

            Unter Win7 Sidebar Gadgets (IE7) leider nicht.
            Hier steht leider nur Ajax zur Verfügung.

            Lustig: Beim Einbinden der sample.html über <iframe> in das Gadget, klappt jedes Mal beim senden der Standardbrowser auf !?

            Viele Grüße aus LA

            --
            ralphi
            1. Hallo

              hab websocket mit web-socket.js getestet.
              Klappt mit aktuellen Browsern wunderbar :-)

              Unter Win7 Sidebar Gadgets (IE7) leider nicht.
              Hier steht leider nur Ajax zur Verfügung.

              IE7 unter Windows7?

              1. Geht das überhaupt? Wurde Windows7 nicht von vornherein mit einem Browser höherer Version ausgeliefert? Soweitz ich mich erinnere, hatte Windows7 den IE8 dabei.

              2. Hat dieser Browser überhaupt irgendeine Relevanz? Auf jeder Windowsversion, auf der der IE7 läuft, läuft auch mindestens eine höhere IE-Version.

              Tschö, Auge

              --
              Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
              Terry Pratchett, "Wachen! Wachen!"
              ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
              Veranstaltungsdatenbank Vdb 0.3
              1. Hi

                1. Geht das überhaupt? Wurde Windows7 nicht von vornherein mit einem Browser höherer Version ausgeliefert? Soweitz ich mich erinnere, hatte Windows7 den IE8 dabei.

                2. Hat dieser Browser überhaupt irgendeine Relevanz? Auf jeder Windowsversion, auf der der IE7 läuft, läuft auch mindestens eine höhere IE-Version.

                die Gadgets (sidebar) wurden mit vista eingeführt. Der verwendete „Browser“ ist IE7 kompatibel.
                Der „Browser“ der Sidebar ist UNABHÄNGIG von dem Desktopbrowsern.
                Das heißt kein HTML5, Jquery und co.
                Da MS mit ihrem ActiveX-Zeug Zugriff auf den Rechner erlauben, war (ist) es eine riesen Sicherheitslücke.
                Support und Updates wurden eingestellt :-|
                Man argumentiert bei MS, dass die Gadgets eh nur ein Vorläufer (zur Einstimmung) der Win8 Apps-Kacheln waren.

                Viele Grüße aus LA

                --
                ralphi