daten sofort in browser ausgeben
kraft hannes
- perl
hallo leute,
ich suche nun leider schon zu langen an einer möglichkeit die daten welche ich mit perl an den browser zurückgebe, sofort im browserfenster anzuzeigen
beispiel:
(ich setze mal voraus dass die forumsuche mit perl realisiert ist)
wenn ich hier also in der forumsuche ein stichwort eingebe
und dann auf suchen klicke, dauert es recht lange bis ergebnisse
erscheinen, weil - nehme ich mal an - perl zuerst die rückgabeseite
generiert und sie dann erst dem webserver übergibt der die seite
dann an den browser schickt
frage:
wie kann ich perl oder meinen apache dazu bringen, teile der ausgabe
vielen dank für eure mühe
servus
hannes
wie kann ich perl oder meinen apache dazu bringen, teile der ausgabe
- meinetwegen die einleitung <html> . . . etc. SOFORT auszugeben und den rest erst nach und nach, damit der user nicht so lange warten muss
++$;
Zur Funktionsweise siehe "perldoc perlvar".
Peter
++$;
Zur Funktionsweise siehe "perldoc perlvar".
hallo peter,
im ansatz stimmt das - leider funkts irgendwie nicht *g*
. . . möglicherweise arbeitet dieses Output-Autoflush nur auf der
konsole und zusammen mit dem apache gehts eben nicht
hast du noch eine andere idee??
in diesem zusammenhang fand ich - endlich - noch einen thread
hier im forum:
http://www.teamone.de/selfhtml/sfarchiv/1999_3/t06393.htm
servus
hannes
hallo zusammen,
zum teil funkts nun - ich weiss aber nicht genau wieso:
nachdem ich jetzt alles sortiert und ausprobiert habe bin ich
zu folgender (unbefriedigender) lösung gekommen:
die ersten zeilen meines scripts sehen jetzt so aus:
#!/usr/bin/perl
use English;
$ = 1;
print "Content-type: text/html\n\n";
$HTTP_headers = "HTTP/1.1 200 OK\015\012";
$HTTP_headers .= "Connection: close\015\012";
print "<!--";
print $HTTP_headers;
print "-->";
. . . leider weiss ich bei den http headers nicht was die eigentlich
hier sollen - habe ich bei
http://www.apache.org/docs-1.2/misc/FAQ.html#nph-scripts
abgeschrieben
auch mit dem use english blicke ich überhaupt nicht durch
eigentlich nur der $ ist mir eingängig (- ist auch in programmieren
mit perl von larry wall beschrieben)
ich vermute dass ich hier irgendwo den wald nicht sehe - vor lauter
bäume - oder ich bin einfach nur zu unwissend
vielleicht hat noch einer der geschätzen forumteilnehmer eine idee :)
servus
hannes
ps: ich hoffe dass niemand meinte ich wolle die ausgabe der
suchfunktion hier kritisieren - ich brauche das ganze natürlich
selber (die suche ist übrigens superschnell geworden :))
hi,
zum teil funkts nun - ich weiss aber nicht genau wieso:
so gehts mir auch immer *g*
nachdem ich jetzt alles sortiert und ausprobiert habe bin ich
zu folgender (unbefriedigender) lösung gekommen:die ersten zeilen meines scripts sehen jetzt so aus:
#!/usr/bin/perl
»» use English;
$ = 1;
print "Content-type: text/html\n\n";
$HTTP_headers = "HTTP/1.1 200 OK\015\012";
$HTTP_headers .= "Connection: close\015\012";
print "<!--";
print $HTTP_headers;
print "-->";. . . leider weiss ich bei den http headers nicht was die eigentlich
hier sollen - habe ich bei
http://www.apache.org/docs-1.2/misc/FAQ.html#nph-scripts
abgeschrieben
1.2? soweit ich weiß geht es bei dieser version nur mit nph scripts.
das file muss dafür mit nph- beginnen. also aus test.cgi wird nph-test.cgi.
dann parsed der server das file nicht mehr und buffered deswegen auch nichts.
nur musst du dann den header schreiben, deswegen die zeilen die du da hast..
ich empfehle dir die neuestes version (irgendwas mit 1.3 soweit ich weiß) zu installieren, ab da buffered der nämlich nichts mehr
wenn du $ auf 1 setzt. ist erheblich einfacher zu handhaben als nph scripts :)
auch mit dem use english blicke ich überhaupt nicht durch
vergiss es, ist unwichtig für dich :)
ich glaube das ist dazu da um gewisse kryptische variablen auch über englische namen ansprechen zu können.
also benenn dein obiges script nach nph-irgendwas um, dann MÜSSTE es eigentlich gehen...
wenn nicht zieh dir halt den neusten apache ;)
danny
Hallo Hannes,
#!/usr/bin/perl
»» use English;
$ = 1;
[...]
auch mit dem use english blicke ich überhaupt nicht durch
eigentlich nur der $ ist mir eingängig (- ist auch in programmieren
mit perl von larry wall beschrieben)
mit use english bekommst Du Variablen mit sprechenden (englischen) Namen bekommst. Z.B. $PROCESS_ID statt $$. In Deinem Fall könntest Du anstelle von $ die Variable $OUTPUT_AUTOFLUSH verwenden. Auf diese Namen hättest Du eigentlich in der Doku perlvar (perldoc perlvar) stolpern müssen ...
Jörk
im ansatz stimmt das - leider funkts irgendwie nicht *g*
. . . möglicherweise arbeitet dieses Output-Autoflush nur auf der
konsole und zusammen mit dem apache gehts eben nicht
Verwendest Du Tabellen?
Peter
wenn ich hier also in der forumsuche ein stichwort eingebe
und dann auf suchen klicke, dauert es recht lange bis ergebnisse
erscheinen, weil - nehme ich mal an - perl zuerst die rückgabeseite
generiert und sie dann erst dem webserver übergibt der die seite
dann an den browser schickt
Das dauert solange, weil das Perlscript 70.000 Postings durchsucht. Das generieren der HTML Seite geht in Bruchteiler einer Sekunde. Wozu gibts denn ULTRA Sparc, Alpha und XEON? :-)
MfG
Thomas
hi!
ich suche nun leider schon zu langen an einer möglichkeit die daten welche ich mit perl an den browser
zurückgebe, sofort im browserfenster anzuzeigen
<68764.html>
bye, Frank!