Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 18
  1. #1
    kutiku Guest

    Question PHP: Wie sag ich dem Browser, dass nichts mehr kommt, obwohl das Script noch läuft?

    Hi,
    Also nochmal konkreter:
    Das Script gibt die Seite aus, und sendet dann noch ein paar Leerzeichen um den Puffer zu leeren. Danach macht das Script noch ein paar Sachen (die etwas dauern).
    Der User soll aber nicht denken, dass die Seite noch lädt, weil (beim IE z.B.) dieses komische Zeichen rechts oben noch animiert. Also, für den User soll die Seite jetzt geladen sein. Wie sagt nun PHP dem Browser, dass es das war?

  2. #2
    Avatar von Crying Man
    Crying Man ist offline Haudegen
    registriert
    15-06-2000
    Beiträge
    509
    Interesannte Frage, aber ich vermute es geht nicht, da php ja nie weiß wann die Ausgabe zuende ist

    Eigentlich braucht man sowas doch auch nicht, schließlich dauern diese Hintergrundaktionen meist nicht lange (nur in äußersten Fällen kann es mal zu verzögerungen kommen, wenn z.B. zwei lange While-Schleifen ineinander sind )

    Meine (etwas dumme) Lösung wäre wenn du ein Skript hast das nur diese Hintergrund-aktionen ausführt und dann ein Bild ausgibt, so werden die Aktionen unabhängig vom Skript ausgeführt

  3. #3
    kutiku Guest
    Tja, ich bräucht sowas für genau so 'nen Extremfall (sehr Extrem).

    Ein Extrascript herzunehmen wäre auch meine Alternativlösung gewesen.
    Aber irgendwas muss es ja geben. Schließlich weiß der Browser auch am Ende, dass Ende ist.

  4. #4
    xxoes ist offline König
    registriert
    17-02-2001
    Ort
    Location
    Beiträge
    933
    mit nem header müsste das gehen!


    cu xxoes

  5. #5
    Avatar von Crying Man
    Crying Man ist offline Haudegen
    registriert
    15-06-2000
    Beiträge
    509
    Aha, und welcher Header ?!?!
    Kann ich mir nicht so recht vorstellen, da er ja auch wissen muss wann "schluss" ist

  6. #6
    xxoes ist offline König
    registriert
    17-02-2001
    Ort
    Location
    Beiträge
    933
    also mit header gehts net!
    hab mal einige versucht!
    z.B. header("Connection: close");

    musst es halt so machen das dein script sich selber aufruft und dann weiterarbeitet!


    cu xxoes

  7. #7
    kutiku Guest

    Question Sind das die Grenzen?

    Ich dachte immer, man könne mit PHP alles machen, denn irgendwas muss ja an den Browser gesendet werden. Aber scheinbar geht's nicht mit PHP. Ist PHP nicht vollkommen ?

    Dann nehm ich eben die etwas umständlicherere Alternative.

  8. #8
    xxoes ist offline König
    registriert
    17-02-2001
    Ort
    Location
    Beiträge
    933
    den eigendlichen befehl das keine ausgabe mehr stattfindet sendet ja eigendlich der server nciht php, mann muss diesen befehl aber auch mit php simulieren können!

    cu xxoes

  9. #9
    xxoes ist offline König
    registriert
    17-02-2001
    Ort
    Location
    Beiträge
    933
    Ich habe ne lösung gefunden!
    zwar sende ich kein verbindungsabruch aber es geht.

    was is wenn cih so gemein wie ich bin, die schöne gute lösung für mich behalte *fg* um euch ein bisle auf die folter zu spannen!


    cu xxoes

  10. #10
    kutiku Guest

    Unhappy Ahhhhhhhh

    Sag's halt!
    BIIIIIIIIIIIIIIIIIITTTTTTTTTTTTTTTTTTTTTTTTTEEEEEEEEEEEEEEEEEEEEEEE
    ich halt's nicht mehr aus. Ich war lang genug auf der Folter

  11. #11
    xxoes ist offline König
    registriert
    17-02-2001
    Ort
    Location
    Beiträge
    933
    bitte überweise auf folgende konto 1million:

    blablablabla

    thx
    dann überweise ich dir die lösung


    ach ich weiß das ich heute wieder lustig bin!

    ps.: versuchst mal mit <?PHP exit;?> damit wird die verarbeitung abgebrochen und dann?
    Geändert von xxoes (15-10-2001 um 19:34 Uhr)

  12. #12
    xxoes ist offline König
    registriert
    17-02-2001
    Ort
    Location
    Beiträge
    933
    ok dann wollen wir euch nicht mehr auf dei folter spannen aber 1 million könnt ihr mir trotzdem schicken sowas kann ich immer gebrauchen!


    <?PHP
    ignore_user_abort(1);

    // hier kannste dein script reinschreiben




    function diese_function_soll_beim_beenden_des_scriptes_gestartet_werden()
    {
    // was soll hier rein??
    // gute frage??
    exit; // wie wäre es damit? muss aber nciht rein!!!
    }
    register_shutdown_function("diese_function_soll_beim_beenden_des_scriptes_gestartet_werden");
    exit;
    ?>


    cu xxoes

  13. #13
    kutiku Guest

    Question Ist das in Rätsel?

    Ich hab einige Varianten ohne Erfolg getestet:

    1. direkt nach dem Exit weitere Befehle (mit Dateien) - nix
    2. @ignore_user_abort(); @set_time_limit (0); - nix
    3. register_shutdown_function() - die funktion gibt trotzdem noch eine Ausgabe.

    Also?


    PS: Diese Antwort bezieht sich auf deine vorige...ich werd's jetzt mal testen
    Geändert von kutiku (15-10-2001 um 19:51 Uhr)

  14. #14
    kutiku Guest

    Unhappy hmmm...

    Ich hab jetzt Testweise mal das gemacht:

    test1<?PHP
    ignore_user_abort(1);

    // hier kannste dein script reinschreiben




    function diese_function_soll_beim_beenden_des_scriptes_gestartet_werden()
    {
    for ($i=0;$i<500000;$i++);
    echo "test3";
    exit; // wie wäre es damit? muss aber nciht rein!!!
    }
    register_shutdown_function("diese_function_soll_beim_beenden_des_scriptes_gestartet_werden");
    echo str_repeat(" ",8*32);
    flush();
    exit;
    ?>test2

    In meinem PHP kommt nicht das erwünschte Ergebnis. D.h. test3 wird nach der Schleife ausgegeben, und natürlich ist die Verbindung da.

  15. #15
    xxoes ist offline König
    registriert
    17-02-2001
    Ort
    Location
    Beiträge
    933
    also nochmal!!

    <?PHP
    ignore_user_abort(1);
    register_shutdown_function("bei_connection_close");
    function bei_connection_close()
    {
    //hier schreibst du rein was passieren soll wenn das script machen soll wenn du verbindung zum clienten beeendet ist!
    for ($i=0;$i<500000;$i++);
    echo "hier kommt keinen ausgabe da der client net mehr verbunden ist!";
    exit; // wie wäre es damit? muss aber nciht rein!!!
    }


    //hier kommt das hin was passieren soll wären der client noch verbunden ist!
    echo "Hier kommt einer ausgabe";

    exit; // hier wird der client vom server getrennt jetzt wird automatisch die function bei_connection_close() gestartet das script läuft also weiter!
    ?>

Seite 1 von 2 12 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •