Ausgabe vor flusch() löschen

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

  • Ausgabe vor flusch() löschen

    Hallo! Hab mir schon viele Ideen und Tipps aus eurem Forum geholt, jedoch bin ich auf ein Problem gestoßen wozu ich nichts finden konnte, daher hab ich mich entschlossen mich selbst zu regisrieren und euch zu fragen!

    ich hab ein skript das arbeitet ca. 15-20 sekunden. damit die user nicht glauben irgendetwas ist faul, hab ich einen kleinen hinweis eingefügt (flush() hilft da), jedoch gebe ich nach erfolgreichem laden der kompletten seite den zweiten hinweis (prozess erfolgreich) aus.

    so, nun stehen beide hinweise da, das gefällt mir nicht. gibts eine möglichkeit den ersten hinweis auf die wartezeit zu löschen bzw. zu überschreiben? wenn ja, wie?

    liebe grüße!

  • #2
    so, nun stehen beide hinweise da, das gefällt mir nicht. gibts eine möglichkeit den ersten hinweis auf die wartezeit zu löschen bzw. zu überschreiben? wenn ja, wie?
    Einmal an den Browser geschickte Ausgaben kannst du mittels PHP nicht mehr entfernen.
    Du könntest höchstens wenn die Seite geladen ist ein JS einbinden welches via style Eigenschaften den Eintrag auf unsichtbar setzt.
    Mach dich mal bei SelfHtml zum Themas schlau (entweder style.visibility oder display)

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Output Buffer aktivieren

      PHP-Code:
      ob_start();
      echo 
      "meldung1";

      if (
      true) {
        
      // ha, das hier soll das alte erstetzen
        
      ob_end_clean();
        echo 
      "meldung2";

      funktioniert für die ersten 4000 Bytes sogar von Haus aus, so war es mir möglich ein Cronjob-Framework zu schreiben, da cronjobs bekanntermaßen ja mit
      #!/bin/php
      anfangen müssen, das den Browser aber rein gar nicht interessiert, wird für den Browser einfach ein ob_end_clean() gemacht. Die erste Zeile landet automatisch in den default 4000Bytes und wird dann gekillt, perfekt ^^

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Original geschrieben von ghostgambler
        funktioniert für die ersten 4000 Bytes sogar von Haus aus,
        willst du damit sagen, dass die ersten geschriebenen 4000 bytes, und auch bereits beim client lesbar, im nachhinein wieder überschrieben werden können???

        Kommentar


        • #5
          Irgendwie glaube ich nicht, dass meldung1 beim Client angezeigt wird. ob_end_clean() verwirft ja den Inhalt des Buffers. Und da nirgends ein echo des Buffer Inhaltes erfolgt kann ich mir nicht vorstellen, dass das erste echo beim Client angezeigt würde.

          Gruss

          tobi

          p.s. es würde mich in höchstem Masse verwundern, wenn eine bereits beim Client angezeigtes echo wieder überschrieben werden könnte, dann müsste doch PHP Zugriff auf den Quellcode beim Client haben
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Original geschrieben von 3DMax
            willst du damit sagen, dass die ersten geschriebenen 4000 bytes, und auch bereits beim client lesbar, im nachhinein wieder überschrieben werden können???
            Ne ~.~
            Code:
            ; - output_buffering = 4096        [Performance]
            ;     Set a 4KB output buffer.  Enabling output buffering typically results in less
            ;     writes, and sometimes less packets sent on the wire, which can often lead to
            ;     better performance.  The gain this directive actually yields greatly depends
            ;     on which Web server you're working with, and what kind of scripts you're using.
            Das ist Standard, d.h. standard-mäßig ist der Output-Buffer schon aktiviert

            Original geschrieben von jahlives
            Irgendwie glaube ich nicht, dass meldung1 beim Client angezeigt wird. ob_end_clean() verwirft ja den Inhalt des Buffers. Und da nirgends ein echo des Buffer Inhaltes erfolgt kann ich mir nicht vorstellen, dass das erste echo beim Client angezeigt würde.
            das erste soll ja auch gar nicht angezeigt werden, wenn das if true ist ... wenn es false ist wird es angezeigt, weil der OB einfach irgendwann an den Client geschickt wird

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              das erste soll ja auch gar nicht angezeigt werden, wenn das if true ist
              Dann hilft das aber dem topicstarter auch nicht weiter. Der hat ja bereits eine Ausgabe produziert, die er wieder wegmachen will

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Original geschrieben von jahlives
                Dann hilft das aber dem topicstarter auch nicht weiter. Der hat ja bereits eine Ausgabe produziert, die er wieder wegmachen will
                Was ist denn das Problem vor die erste Ausgabe ein ob_start zu schreiben?
                Was ist überhaupt dein Problem mit meinem Post? Es funktioniert, der Topic-Starter soll es sich angucken und wenn es okay ist benutzen. Eine andere Möglichkeit gibt es eh nicht ...

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  Was ist überhaupt dein Problem mit meinem Post?
                  Ich wollte dich nicht anfahren, ehrlich nicht.
                  Ich kann es mir einfach nicht vorstellen, dass eine bereits beim Client angezeigte Ausgabe irgendwie wieder überschrieben werden kann...
                  Und das war es doch was der topicstarter wollte, wenn ich ihn richtig verstanden habe

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    Original geschrieben von jahlives
                    Ich wollte dich nicht anfahren, ehrlich nicht.
                    Ich kann es mir einfach nicht vorstellen, dass eine bereits beim Client angezeigte Ausgabe irgendwie wieder überschrieben werden kann...
                    Und das war es doch was der topicstarter wollte, wenn ich ihn richtig verstanden habe
                    achso ... er schickt das mit Flush schon hin ... hm ~-~

                    tjo, dann die display-Lösung
                    PHP-Code:
                    <p id="ersteMeldung">processing...</p>
                    <?php
                    for ($i 0$i <= 2000; ++$i) {sleep(1);};
                    ?>
                    <style type="text/css">#ersteMeldung { display:none; }</style>
                    <p>fertig</p>
                    find ich aber sehr unschön...

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      hallo! sorry das ich erst so spät wieder zurückschreibe, hab heut einige überstunden machen müssen/können

                      ich werde eure möglichkeiten heute noch durchprobieren und euch bescheid geben, wobei ich mich eher auf den letzten vorschlag konzentrieren werde, da ich die bereits vorhandene "bitte warten" ausgabe (die ich ja schon mit flush() gesendet hab) ja mit der meldung das alles ok ist überschrieben werden soll.

                      greets

                      Kommentar

                      Lädt...
                      X