Flush() funktioniert nicht...

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

  • Flush() funktioniert nicht...

    Guten Tag!

    Folgendes: Ich habe ein php skript welches einen exec befehl enthaelt... Dieser Befehl dauert ca. 10 sekunden maximal. Waehrend dieser Wartezeit wuerde ich gerne die php seite bis zum flush(); laden, damit Bitte warten... angezeigt wird. Dies will ich dann per javascript oder so spaeter ausblenden...

    Allerdings laedt er trotz flush(); die Seite erst wenn das Skript durchgelaufen ist... Ich habe auch schon versucht gzip zu deaktivieren per .htacces:
    Code:
    php_value output_buffering "0"
    <ifModule mod_gzip.c>
      mod_gzip_on No
    mod_gzip_dechunk No
    </ifModule>
    Mein Php code sieht folgendermaßen aus:

    PHP-Code:
    echo str_repeat(" "256)."<pre>";
    echo 
    "Bitte warten...";
        
    ob_flush();
        
    flush(); 
    Ich weiß leider nicht was ich noch tun kann, hoffe jmd kann mir helfen!

    lg

  • #2
    Machs dir per Ajax...
    Dann kannste während der Action eine Zappelgrafik anzeigen.

    Halbfertige Seiten werden nicht von jedem Browser unbedingt angezeigt. Ins Besondere fällt man bei Tabellenlayouts damit garantiert auf die Nase.
    Wir werden alle sterben

    Kommentar


    • #3
      Hallo combie!

      Vielen Dank erstmal fuer die Antwort. Leider hab ich noch nie Ajax benutzt.. Hast du da evtl nen Link oder so fuer mich?

      lg

      Kommentar


      • #4
        AJAX Introduction

        mfg streuner
        Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
        der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

        "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

        Kommentar


        • #5
          Ist es bei der Aktion notwendig auf das Ende des Befehls, den du mit exec ausführst zu warten?
          Vielleicht ist eine Alternative den Befehl im Hintergrund (mit einem angehängten &) zu starten und sich nicht weiter drum zu kümmern. Kommt natürlich darauf an, was du ausführst.

          Gruß Danny
          hostbar - Full Service Internet Agentur

          Kommentar


          • #6
            Danke erstmal,

            also @hostbar_danny: Ja die exec erstellt eine Datei die runtergeladen werden soll...

            @all

            Wolte das nun mit Ajax lösen und habe folgendes Script:

            Code:
            <script type="text/javascript"><!--
            function sendRequest(linkref, target) {
                    var req;
                    try {
                            req = window.XMLHttpRequest?new XMLHttpRequest():
                                    new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {
                            // no AJAX Support
                    }
                    req.onreadystatechange = function() {
                            if ((req.readyState == 4) && (req.status == 200)) {
                                    document.getElementById(target).innerHTML = req.responseText;
                            }
                    }
             
                    req.open('POST', 'index2.php');
                    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                    req.send('key=val');
             
                    return false; // return false to avoid reload/recentering of the page
            }
            //-->
            Der submitbutton sieht wie folgt aus:
            Code:
            <input type="submit" value="Absenden" onclick="return sendRequest(this, 'targetDiv')">
            Allerdings wird jetzt das Array aus dem Formular nicht mehr an index2.php uebertragen, es ist also leer.... Was mache ich falsch?

            lg

            Kommentar

            Lädt...
            X