Scriptausführungszeit mit redirect / refresh umgehen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Scriptausführungszeit mit redirect / refresh umgehen

Beitrag von mgutt »

Welche Techniken kann man anwenden, damit ein Script, dass sehr lange läuft immer wieder reloadet?

Ich habe mal versucht mit META refresh, aber das hat dann relativ kurzfristig abgebrochen. Wobei ich aber auch echo-mäßig nichts ausgegeben habe.

Gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
OnFire
Mitglied
Beiträge: 207
Registriert: 26.07.2006 18:59
Wohnort: Paderborn
Kontaktdaten:

Beitrag von OnFire »

Du könntest das Script in mehrere Teile aufteilen, die sich dann nacheinander aufrufen, d.H. wenn der erste Teil fertig ist mit einem

Code: Alles auswählen

header("Location:http://www.server.tld/pfad/zu/script.php?daten=für&nächsten=Teil");
den Browser veranlassen, den nächsten Aufzurufen.
Gruß
OnFire
Il y a plus des choses à changer dans l'avenir que dans le passé.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Das Problem ist, dass ich dann auf die visuelle Ausgabe komplett verzichten muss. Also ich weiß dann gar nicht, ob das Script noch arbeitet oder vielleicht doch hängen geblieben ist.

Gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
OnFire
Mitglied
Beiträge: 207
Registriert: 26.07.2006 18:59
Wohnort: Paderborn
Kontaktdaten:

Beitrag von OnFire »

Nein musst du nicht ;) du kannst mit ähnlichen Methoden sogar eine Statusanzeige einbauen, die dem User zeigt, wie weit dein Script ist ;) Und die eigentliche Ausgabe muss dann ja nur im letzten Teil des Scripts stehen. Und dass das Script nicht hängenbleibt ist sowieso selbstverständlich, oder? Wenn es einen Stolperstein gibt, den du nicht beseitigen kannst, solltest du den potentiellen Fehler abfangen. Wenn du willst kannst du ja mal posten um was es genau geht (oder auch per pn), dann kann ich dir da auch en Detail weiter helfen.
Gruß
OnFire
Il y a plus des choses à changer dans l'avenir que dans le passé.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Das Script hat das Problem, dass manchmal der SQL-Server die Verbindung kappt. Was er aber komischerweise immer an der gleichen Stelle macht, wenn ich das Script durchlaufen lasse (nach ein paar tausend SQL-Abfragen).

Und es gibt ein Problem, wenn eine SQL-Abfrage nicht erfolgreich ist und der eine Fehlermeldung anzeigt. Dann greift der header nicht, weil er berechtigterweise ausgibt, dass bereits header vorhanden sind (der sql error).

D.h. Du siehst, dass nicht mein Script, sondern eher meine SQL-Datenbank das Problem verursacht. Aber wie kann ich die header-Meldung vermeiden?

Gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

Du könntest dir mal bigdump ansehen, welches eben genau diese Technik verwendet um Timeouts zu umgehen :wink:

Lesefutter: KB:bigdump

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
OnFire
Mitglied
Beiträge: 207
Registriert: 26.07.2006 18:59
Wohnort: Paderborn
Kontaktdaten:

Beitrag von OnFire »

Kurz und knapp: mit nem @ vor deinem Funktionsaufruf... also

Code: Alles auswählen

@mysql_query($query_string);
, das funktioniert übrigens mit sämtlichen php-funktionen
Gruß
OnFire
Il y a plus des choses à changer dans l'avenir que dans le passé.
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag von Jensemann »

OnFire hat geschrieben:Kurz und knapp: mit nem @ vor deinem Funktionsaufruf... also

Code: Alles auswählen

@mysql_query($query_string);
, das funktioniert übrigens mit sämtlichen php-funktionen
In solchen Fällen würde ich eher das error-Reporting für das ganze Script unterdrücken. In den AJAX/JSON Backends von Gooba verwende ich dafür:

Code: Alles auswählen

ini_set("display_errors", "false");
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von Banger »

mgutt hat geschrieben:Das Script hat das Problem, dass manchmal der SQL-Server die Verbindung kappt. Was er aber komischerweise immer an der gleichen Stelle macht, wenn ich das Script durchlaufen lasse (nach ein paar tausend SQL-Abfragen).
Hier könnte mysql_ping() Abhilfe schaffen.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

mad-manne hat geschrieben:Du könntest dir mal bigdump ansehen, welches eben genau diese Technik verwendet um Timeouts zu umgehen :wink:

Lesefutter: KB:bigdump

Gruss,
Manne.
Wunderbar. Dort wirds mit JS gemacht. Habe ich jetzt auch mal probiert.

Gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „Coding & Technik“