Fenster bei Flush mitlaufen lassen?
Christian Meesters
- html
0 Der Martin- sonstiges
-1 cmeesters
0 Manuel B.
Hallo zusammen,
ich habe mit PHP einen Linkcheck für Inhalte auf meiner privaten Homepage realisiert. Pro Link wird per flush() eine Ausgabe der im Puffer befindlichen Zeichen erzwungen.
Nun gilt meine Frage aber nicht diesem PHP-Inhalt sondern eher der Anzeige der Ausgabe. Da der Seite während des Linkchecks laufend Zeilen hinzugefügt werden, wird der Scrollbalken immer 'kleiner'. Das Fenster zeigt jedoch nur den zuerst ausgegebenen Inhalt an.
Ich möchte, dass das Fenster immer die letzte Zeile der Ausgabe zeigt, also nach unten mitwandert. Ist das möglich, wenn 'Ja' wie?
Liebe Grüße & vielen Dank,...
...Christian
PS: Ich hoffe es war verständlich erklärt. Wenn Unklarheiten vorhanden sind hilft vielleicht ein Besuch auf der betreffenden Seite. Bitte den Link 'Linkcheck LIVE' auf o.g. Seite anklicken.
Hallo Christian,
ich möchte dir ungern deine Begeisterung kaputtmachen, aber was du da vorhast, ...
Ich möchte, dass das Fenster immer die letzte Zeile der Ausgabe zeigt, also nach unten mitwandert. Ist das möglich, wenn 'Ja' wie?
... ist so nicht möglich. Noch schlimmer: Es ist nicht einmal sicher, dass der Browser die Ausgabe überhaupt "nach und nach" anzeigt. Ebensogut könnte er erst die Daten puffern, bis die HTML-Ressource vollständig übertragen ist und dann alles auf einmal ausgeben.
Das Verhalten des Browsers zwischen dem Absenden des ursprünglichen Requests und dem Abschluss des Transfers entzieht sich deiner Kontrolle als Webautor komplett. Bestenfalls kann der User durch geeignete Konfiguration seines Browsers noch ein bisschen eingreifen. Beim Opera kann man z.B. einstellen, wann er anfängt, die Seite zu rendern: Sofort, nach einer einstellbaren Verzögerung, oder erst nachdem der Transfer abgeschlossen ist.
PS: Ich hoffe es war verständlich erklärt.
Zumindest glaube ich, dass ich es verstanden habe. ;)
Übrigens gibt es massive Probleme mit deiner oben angegebenen Seite.
Auf den Request antwortet dein Server mit
HTTP/1.x 200 OK
Date: Sun, 08 May 2005 10:39:35 GMT
Server: Apache/1.3.19 (Unix) (SuSE/Linux)
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
und bricht dann offensichtlich nach nur teilweise übertragenem Content ab. Nebenbei versucht mein Firefox noch, ein Favicon abzurufen und bekommt stattdessen ein HTML-Dokument mit Status 302 serviert. Das ist nicht sauber!
Im Endeffekt sehe ich also nur eine leere Seite mit dem Seitentitel "private Homepage Christian Meesters".
Mit dem IE (5.5SP2) ist es noch "lustiger". Der läuft in eine endlose Folge von Weiterleitungen. Allerdings laufen die Schritte in der Statuszeile so schnell durch, dass ich nicht mehr mitlesen kann, was da wirklich passiert.
Da solltest du vielleicht erst einmal überhaupt für anzeigbare Inhalte sorgen, bevor du über Feinheiten grübelst.
So long,
Martin
PS: Mit dem gewählten Themenbereich HTML hat das ja eigentlich nichts zu tun, oder?
Hallo Martin,
»»ich möchte dir ungern deine Begeisterung kaputtmachen, aber was du »»da vorhast, ... ... ist so nicht möglich.
Danke, mit dieser Aussage kann ich etwas anfangen,... ...,der Rest kommt wegen der fehlenden konstruktivität deiner Kritikpunkte einer Provokation sehr nahe. Vielleicht habe ich es jedoch auch missverstanden.
Im Endeffekt sehe ich also nur eine leere Seite mit dem
Seitentitel "private Homepage Christian Meesters".
Schade, dieses Problem hat sich bisher meiner Kenntnis entzogen. Im Gegenteil sogar. Es scheint ein Phänomen zu sein. Ich werde dem zur Folge diesem Umstand auch weiter keine bedeutende Aufmerksamkeit schenken.
Da solltest du vielleicht erst einmal überhaupt für anzeigbare
Inhalte sorgen, bevor du über Feinheiten grübelst.
Vielleicht hast Du recht. Mein geistiger Horizont hat warscheinlich den Radius von Null, denn jeder andere zur Arbeit gehende Normalsterbliche hätte es in seiner knapp bemessenen Freizeit wesentlich besser hinbekommen!
Liebe Grüße,...
...Christian Meesters
Mensch! Zerschmettere nicht alles was deinen Maßstäben nicht gewachsen ist. Ich bin stolz auf meine private Internetseite, da diese im Rahmen meiner -wenn auch deiner Meinung nach bescheidenen- Fähigkeiten liegt.
Hallo,
nachdem ich gerade einen Luftsprung vor Schadenfreude gemacht habe, weil Schumi in Barcelona ausgefallen ist, muss ich hier noch etwas ausbügeln.
»»ich möchte dir ungern deine Begeisterung kaputtmachen, aber was du »»da vorhast, ... ... ist so nicht möglich.
Danke, mit dieser Aussage kann ich etwas anfangen,... ...,der Rest kommt wegen der fehlenden konstruktivität deiner Kritikpunkte einer Provokation sehr nahe.
Als Provokation war es keinesfalls gemeint. Ich wollte dir zunächst auch anschaulich klarmachen, warum du mit deinem Vorhaben (automatisches Mitscrollen) zwangsläufig scheitern musst.
Im Endeffekt sehe ich also nur eine leere Seite mit dem
Seitentitel "private Homepage Christian Meesters".Schade, dieses Problem hat sich bisher meiner Kenntnis entzogen. [...] Ich werde dem zur Folge diesem Umstand auch weiter keine bedeutende Aufmerksamkeit schenken.
Das solltest du aber, finde ich.
Ich hab's gerade noch einmal verifiziert. Im IE ist das Verhalten unverändert, der versucht in endloser Folge, die Seite immer wieder neu zu laden, bekommt aber nichts Darstellbares. Firefox und Opera (7.23) sind sich dagegen einig in dem, was sie anzeigen, auch wenn es jetzt etwas anderes ist als vor zwei Stunden:
function popUp1(wintype) { popUp=new Object( ); popUp.window.focus(); } function popUp2(wintype) { popUp=new Object( ); popUp.window.focus(); } function popUp3(wintype) { popUp=new Object( ); popUp.window.focus(); } function popUp4(wintype) { popUp=new Object( ); popUp.window.focus(); } function popUp5(wintype) { popUp=new Object( ); popUp.window.focus(); } function popUp6(wintype) { popUp=new Object( ); popUp.window.focus(); } function popUp7(wintype) { popUp=new Object( ); popUp.window.focus(); } function popUp8(wintype) { popUp=new Object(
Genau so sehe ich deine Seite momentan in diesen beiden Browsern. Ich nehme schon an, dass dein Server da ein gravierendes Konfigurationsproblem hat, oder ein PHP-Script ist aus dem Ruder gelaufen.
Vielleicht hast Du recht. Mein geistiger Horizont hat warscheinlich den Radius von Null, denn jeder andere zur Arbeit gehende Normalsterbliche hätte es in seiner knapp bemessenen Freizeit wesentlich besser hinbekommen!
Ähm, auch ich betreibe das hier nur als Hobby. Und ich gebe zu, der letzte Satz meines Postings war etwas provokativ, sorry. Aber ich meinte ihn inhaltlich trotzdem ernst: Du hast ein Problem mit dem, was dein Server ausliefert, und um dieses Problem _solltest_ du dich kümmern.
Mensch! Zerschmettere nicht alles was deinen Maßstäben nicht gewachsen ist. Ich bin stolz auf meine private Internetseite, da diese im Rahmen meiner -wenn auch deiner Meinung nach bescheidenen- Fähigkeiten liegt.
Sorry, war nicht bös gemeint - ich wollte doch nur helfen... :(
Nichts für ungut,
Martin
Hi,
Ich möchte, dass das Fenster immer die letzte Zeile der Ausgabe zeigt, also nach unten mitwandert. Ist das möglich, wenn 'Ja' wie?
Es ist sicher möglich, das eine Ausgabe "mitwandert". Dazu musst du nur in jeder Zeile per JavaScript nach unten scrollen.
Ob dein Browser immer die entsprechenden Zeilen anzeigt, hängt davon ab, ob der Browser die Verbindung zum Server hält oder abbricht.
Im Prinzip willst du eine Ausgabe, wie sie Streaming-Chats erzeugen. Das geht nur über Sockets und einem passenden Server, der die Verbindung aufrecht erhält, indem er z.B. alle 2-3 Sekunden ein Zeichen sendet.
Ein "nicht möglich", wie von Martin gesagt, ist falsch, sonst gäbe es keine Chatsysteme. Allerdings hat das nichts mit HTML zu tun. Dafür brauchst du was Serverseitiges (PHP, PERL, C, C++, JAVA, Python, ...)
Hallo Manuel,
Ein "nicht möglich", wie von Martin gesagt, ist falsch, sonst gäbe es keine Chatsysteme.
Das "nicht möglich" bezog sich auch ganz klar auf das Szenario, das Christian beschrieben hat, nämlich dass ein HTML-Dokument im Browser stetig mitscrollt, so dass immer die letzte Zeile sichtbar bleibt, noch während es geladen wird.
Allerdings hat das nichts mit HTML zu tun. Dafür brauchst du was Serverseitiges (PHP, PERL, C, C++, JAVA, Python, ...)
Genau. So könnte ein Schuh draus werden. :)
Und du brauchst nicht nur "was Serverseitiges", sondern außerdem noch etwas speziell darauf abgestimmtes Clientseitiges. Ein ganz "normaler" Browser ist dafür auch nicht ausreichend.
So long,
Martin
Hi Martin,
Das "nicht möglich" bezog sich auch ganz klar auf das Szenario, das Christian beschrieben hat, nämlich dass ein HTML-Dokument im Browser stetig mitscrollt, so dass immer die letzte Zeile sichtbar bleibt, noch während es geladen wird.
Wie gesagt, geht nur mit JS aber nicht mit HTML
Allerdings hat das nichts mit HTML zu tun. Dafür brauchst du was Serverseitiges (PHP, PERL, C, C++, JAVA, Python, ...)
Genau. So könnte ein Schuh draus werden. :)
Und du brauchst nicht nur "was Serverseitiges", sondern außerdem noch etwas speziell darauf abgestimmtes Clientseitiges. Ein ganz "normaler" Browser ist dafür auch nicht ausreichend.
Sicher ist ein normaler Browser ausreichend. Wie ich geschrieben hab, arbetiet jeder Streaming-Chat mit dieser Technik. Und dazu brauchst du nur nen Browser, der Javascript kann und evtl. Frames unterstützt.
Das heisst, Chatten ist mit modernen Browsern jederzeit möglich, somit ist es auch möglich, einfach einen Stream an den Browser zu schicken. Da dieser nicht interaktiv ein muss, stellt es nichtmal ein Problem dar, einfach ein Script zu schreiben, ads alle Sekunde in der Datenbank nach neuen Daten such, wenn welche da sind, werden die ausgegeben, wenn keine da sind, wird z.b. ein Leerzeichen ausgegeben.