Das Ausführen einer Funktion dauert sehr lange, wie dem User dies Mitteilen?

BerlinAndy

Grünschnabel
Also folgendes, es werden auf Klick auf nen Absendebutten Mails an vieeele Mailadressen verschickt (aus ner Datenbank) nun dauert das natürlich ne gute Weile bis die Bestätigungsseite oder besser der Bestätigungsteil der Datei aufgerufen wird, das alle Mails verschickt wurden.
Kann man da irgendwie dem User mitteilen (per Pop Up oder so) das das noch ne weile dauert und er warten soll?
Sorry, falls ich den Titel unclever formuliert habe, aber was besseres viel mir nicht ein
 
?

das hört sich für mich nach spammen an...

du könntest höhstens im popup fenster ausgebenlassen wieviele emails noch verschickt werden müssen oder auch wenn du dies mit einer for-schleife gelöst hast, eventuell die dauer einer durchquerung multipliziert mit der noch übriggebliebenen adressen..
 
@ Lambda
Das hatte ich schon probiert, das Pop Up öffnet sich leider erst, wenn der bestätigungsteil der Seite schon geladen wurde, da brauche ich es ja auch nicht mehr ;-)
 
Wenn der Prophet nicht zum Berg kommt, muss der Berg halt zum Propheten. Dann pack ins PopUp deine Mail-Funltion.
 
Output Buffering?

Im Normal Fall liefert PHP den HTML Output ja direkt aus.
Wenn du Output Buffering verwendest, kannst du das selbst steuern.

z.B
PHP:
<?
ob_start();
?>
HMTL davor
<?
ob_flush(); // hier wird mal der erste Teil an den Browser geschickt

$i = 0;
while( irgendwas) {
    // Mail verschicken
    mail();
    
    // pro 10 Mails eien . senden
    if($i % 10 == 0){
          print('.');
          ob_flush();
    }
 
    // nach 1000 . eine neue Zeile mit . anfangen
    if($i % 1000 == 0){
           print('<br>');
           ob_flush();
    }
}
// alles was noch im buffer ist ausgeben
ob_flush();
?>
HTML danach
<?
// den ganzen Rest ausgeben.
ob_end_flush();
?>

Auf diese Art und weise passiert wärend deine Schleife läuft noch was im Browserfenster. Und ein Benutzer kann warten bis "Fertig" da steht.
 
Zurück