Hallo Tomasz,
dein Ansatz, das Problem serverseitig zu lösen, mag richtig sein; ich denke sogar, ganz ohne serverseitige Unterstützung wird's nicht gehen. Aber ob flush() oder fork(), ein Problem bleibt doch immer noch:
Wie bringst du des Users Browser dazu, einen Teil der Seite, den er schon empfangen hat, auch gleich anzuzeigen?
Beispielsweise hat ein seeeehr verbreiteter Browser eines amerikanischen Softwarekonzerns die Angewohnheit, die Empfangsdaten erstmal päckchenweise zu sammeln, bevor er mal wieder ein Stück anzeigt. Besonders schön kann man das beobachten, wenn man lange Seiten über eine langsame Verbindung (Modem) abruft.
Irgendwo geisterte mal die Behauptung rum, dass dieser Browser erst dann wieder ein Häppchen Information anzeigt, wenn sein interner Empfangspuffer von angeblich 4kB mal wieder voll ist (oder das Dokument fertig übertragen ist).
Aus eigener Beobachtung würde ich sagen, das _könnte_ sogar stimmen.
Und hier sehe ich das Hauptproblem, wenn du den allmählichen Fortschritt deiner DB-Abfrage anzeigen willst, um dem User zu zeigen, "ja, bin noch beschäftigt, hier hast du schon mal".
Aber eine Lösung dieses Problems, wenn du denn eine findest, würde mich auch interessieren.
Bye,
Martin