Stückweise Daten-Ausgabe an Client

  • Themenstarter Themenstarter SiskaSchneider
  • Beginndatum Beginndatum
S

SiskaSchneider

Hallo,

ich programmiere eine Internetseite, die unter anderem ein aufwändiges pdf-File generieren muß (Mehr als 100 Seiten).

Leider ist die max_execution_time auf unserem Server auf 60 Sekunden limitiert.

Nun frage ich mich, ob ich während der "Rechenarbeit" bereits Daten an den Client senden kann - vielleicht sogar Informationen wieviel Prozent des Dokumentes bereits generiert wurden - um den Client und die "max_execution_time" sozusagem "hinzuhalten".

Oder ist dieser Ansatz völlig falsch und es gibt eine bessere Lösung?

Ich möchte auf einen PDF-Stream o.ä. verzichten, da ich von vielen Bugs in Verbindung mit dem IExplorer gehört habe und das PDF-File am Ende als Download anbieten.

Über Hilfe würde ich mich sehr freuen!

Grüße,

Siska
 
Kannst es ja mal mit der Fkt. [phpf]flush[/phpf] versuchen. Vielleicht gehts auch bei pdf-Dokumenten. Hab aber keine Ahnung ob das geht .
 
oO Ich stell mir nur die Frage wieso du bitte jedes mal immer und immer wieder ein 100 seitenstarkes PDF generieren willst?

Zur ausüfhrungszeit: Du kommst nich an die php.ini ran?
Dann kannst was anderes ausprobieren um die zeit zu verlängern geht aber nich immer:

Code:
set_time_limit
(PHP 3, PHP 4 )

set_time_limit -- Setzt die maximale Ausführungszeit
Beschreibung
void set_time_limit ( int seconds)


Legt die Zeit in Sekunden fest, die ein Script laufen darf. Ist diese Zeit abgelaufen, wird ein Fehler zurückgegeben. Der Standard liegt bei 30 Sekunden, es sei denn, max_execution_time ist configuration file eingetragen. Bei einer Einstellung von 0 Sekunden ist die maximale Ausführungszeit nicht begrenzt. 

Wenn set_time_limit() aufgerufen wird, dann startet der Zähler neu. Das heisst, wenn die Standardeinstellung 30 Sekunden beträgt und nach 25 Sekunden durch ein Script ein Aufruf wie z.B. set_time_limit(20) erfolgt, darf das Script insgesamt 45 Sekunden laufen, bevor eine Fehlermeldung ausgegeben wird. 

Achtung: Wenn PHP im Safemode läuft, hat set_time_limit() keinen Effekt. Die einzige Möglichkeit, dies zu umgehen, ist den Safemode im configuration file auszuschalten
 
Zurück