Ankündigung

Einklappen
Keine Ankündigung bisher.

Was passiert, wenn ein User einen Seitenladevorgang abbricht?

Einklappen

Neue Werbung 2019

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

  • Was passiert, wenn ein User einen Seitenladevorgang abbricht?

    Ich beziehe mich bei meiner Frage auf: http://php.net/manual/de/function.ignore-user-abort.php

    Ich bin in grenzenloser Naivität bislang davon ausgegangen, dass ein PHP-Skript immer durchläuft, wenn ein User den Ladevorgang im Browser vorzeitig abbricht - zumindest dann, wenn set_time_limit gesetzt ist. Jetzt sehe ich, dass nach der ersten Ausgabe im Browser abgebrochen wird, sobald vom Browser ein disconnect kommt. Jedenfalls verstehe ich den Text so.

    Gilt das nur für normalen Output, oder auch für Header?
    Standards - Best Practices - AwesomePHP - Guideline für WebApps


  • #2
    Suchst du das?
    http://www.php.net/manual/en/functio...user-abort.php
    Oder das?
    http://www.php.net/manual/en/functio...n-function.php
    mysql ist veraltet Mails senden: Ohne Probleme und ohne mail()
    PHP-Code:
    echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>'

    Kommentar


    • #3
      Link1 findest du auch in meinem Beitrag. Sogar gleich in der ersten Zeile. Link2 hilft nur bedingt. Die Frage ging auch in eine ganz andere Richtung: Gilt header() als Output in diesem Sinne?
      Standards - Best Practices - AwesomePHP - Guideline für WebApps

      Kommentar


      • #4
        ich sag mal ja, schätze das aber nur
        http://www.php.net/manual/en/feature...n-handling.php
        kannste das ja testen?

        Kommentar


        • #5
          PHP will not detect that the user has aborted the connection until an attempt is made to send information to the client. Simply using an echo statement does not guarantee that information is sent, see flush().
          Das würde ich auch so verstehen.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            Ich bin gerade noch unterwegs. Werde das später testen.

            @nikosch: Unklar bleibt, ob ein header() gefolgt von einem flush() den gleichen Effekt hat wie ein echo+flush().
            Standards - Best Practices - AwesomePHP - Guideline für WebApps

            Kommentar


            • #7
              Für nen Server ist header und echo das selbe. (Sind beide Daten, die an einem Stück zum Client gehen nur der Bereich ist ein anderer)
              mysql ist veraltet Mails senden: Ohne Probleme und ohne mail()
              PHP-Code:
              echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>'

              Kommentar


              • #8
                Das ist klar. Die Frage ist, ob header() Output im Sinne von "Content an den Server" darstellen und damit das Script ohne Aufruf von ignore_user_abort durch den Browser beendet werden kann. Warum ich frage ist einfach: In einer typischen MVC(-artigen) Anwendung wird missionskritische Geschäftslogik ausgeführt, bevor der (Html)Output an den Browser passiert. Allerdings sende ich recht früh schon Header. Die machen den Buffer zwar nicht gleich voll, aber ich denke, dass es für das Verständnis wichtig/sinnvoll ist, wie php bei so was reagieren kann.
                Standards - Best Practices - AwesomePHP - Guideline für WebApps

                Kommentar


                • #9
                  Ich denke, du kapselst das Ganze als Transaktion, dann wird ein rollback gemacht wenn das Skript abbricht .
                  GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

                  Kommentar

                  Lädt...
                  X