Tabellengeschwindigkeit - Browservergleich

Hallo.

Ich habe eine etwas größere Tabelle (ca. 350 Datensätze), die ich vollständig am Bildschirm anzeige. Das ganze kommt über JSP/Java aus einer Datenbank. Das Select-Statement hab ich schon soweit optimiert wie es ging, auch die JSP-Seite habe ich „überarbeitet“, sodass sich die Ausführungszeit inzwischen um bis zu 500% verbessert hat (FF: von 7 auf 2,5 sek., IE von 5 auf 1 sek.). Seltsam ist hier vor allem, dass mit dem IE das Script deutlich schneller läuft als mit dem FF, obwohl das eigentlich serverseitig ausgeführt wird.
Was aber viel mehr schmerzt, ist dass FF die Tabelle nach ausführung des Scripts wahnsinnig lahm aufbaut. Der braucht dafür nämlich nochmal geschlagene 5 Sekunden! Zum Vergleich: IE 2 sek.
Kann man das irgendwie beeinflussen? Ich hab festgestellt, dass ihn vor allem die Anzeige von Bildern extrem ausbremst. Auf diese kann ich aber nicht verzichten (icons in der Größe 16x16 pixel).

Was hab ich denn für Möglichkeiten, die Tabelle so anzupassen, dass sie im FF auch „schneller wird“? Die Zahlen mögen jetzt zwar nicht so sehr beeindrucken, aber wenn ich daran denke, dass beim Kunden Datensätze in 5stelliger Anzahl auf der Datenbank liegen, wird mir etwas schwindelig…
Außerdem arbeitet der Kunde ausschließlich mit Netscape, der sich identisch zum FF verhält.

Bernd

Moin

Kann man das irgendwie beeinflussen?

Man kann da verschiedene Ding tun:

Erstmal sollte man mit dem colgroup-tag die Spalten vordefinieren.

Die Spaltenhöhe irgendwie angeben (per CSS relativ zur Schriftgrösse ?).

Die Breite der Gesamt-tabelle angeben (Wenn sein muss mit width=„100%“).

thead, tfoot, tbody-Tags können auch nicht schaden (besonders wenn das Zeug ausgedruckt werden soll)

Ich hab festgestellt,
dass ihn vor allem die Anzeige von Bildern extrem ausbremst.

Grösse im Image-tag mit angeben. Wirkt bei gecko (dem renderer von mozilla/FF und Netscape) Wunder.

Die Zahlen mögen jetzt
zwar nicht so sehr beeindrucken, aber wenn ich daran denke,
dass beim Kunden Datensätze in 5stelliger Anzahl auf der
Datenbank liegen, wird mir etwas schwindelig…

Wenn du 5 stellige Zeilenbereiche erreichts wird der Browser eh an RAM-Mangel verrecken. Teil das auf in verschiedene Seiten.

cu

Erstmal sollte man mit dem colgroup-tag die Spalten
vordefinieren.

Hat nichts gebracht…

Die Spaltenhöhe irgendwie angeben (per CSS relativ zur
Schriftgrösse ?).

… auch nicht…

Die Breite der Gesamt-tabelle angeben (Wenn sein muss mit
width=„100%“).

… war schon …

thead, tfoot, tbody-Tags können auch nicht schaden (besonders
wenn das Zeug ausgedruckt werden soll)

Hab ich nicht ausprobiert, wird aber wohl performance-technisch nichts bringen.

Grösse im Image-tag mit angeben. Wirkt bei gecko (dem renderer
von mozilla/FF und Netscape) Wunder.

Muss dich leider entäuschen, auch das hat nichts gebracht. Nichtmal einen messbaren Vorteil.

Wenn du 5 stellige Zeilenbereiche erreichts wird der Browser
eh an RAM-Mangel verrecken. Teil das auf in verschiedene
Seiten.

Ich werde wohl nicht drumrumkommen meine Test-Datenbank aufzupumpen. Aber falls das tatsächlich Speicherprobleme geben sollte, kann ich meinen Chef vielleicht zu einer „Zwangslösung“ (sprich: Maximalgröße einer Tabelle) überreden.

Bernd

Was aber viel mehr schmerzt, ist dass FF die Tabelle nach
ausführung des Scripts wahnsinnig lahm aufbaut. Der braucht
dafür nämlich nochmal geschlagene 5 Sekunden! Zum Vergleich:
IE 2 sek.

Dies kann ich leider nur bestätigen :frowning: Netscape hat schon seit ich zurück denken kann, „Probleme“ mit Tabellen gehabt, Firefox hatte ich erst vor kurzem getestet und musste ähnliche unangenehme Erfahrung machen.

Ich habe unter http://internet-partner.de/test.html eine Tabelle mit 870 KB und folgende Messwerte erziehlt beim Laden:

6 Sekunden - Lynx - Tabelle wird ehr schlecht dargestellt (ausser Konkurenz).

9 Sekunden - IE6 - Tabelle wird richtig angezeigt
21 Sekunden - Konqueror - Tabelle wird falsch angezeigt (linux)
68 Sekunden - Opera - Tabelle wird FAST richtig angezeigt.
95 Sekunden - Mozilla - Tabelle wird FAST richtig angezeigt. (linux)
136 Sekunden - FireFox - Tabelle wird falsch angezeigt.
153 Sekunden - Netscape - Tabelle wird falsch angezeigt.

Das zeugt recht eindeutig davon dass FireFox und Netscape relativ „langsam“ sind, ohne dass man es nennenswert beeinflussen kann:frowning:

Kann man das irgendwie beeinflussen?

Vielleicht ein Hinweis auf der Startseite, dass FireFox-User mit längeren Ladezeiten zu rechnen haben?! Würde auch die Unsitte mit x-Verschiedenen Browsern online gehen zu wollen etwas minimieren? :smile:

Auf diese kann ich aber nicht verzichten (icons in der Größe
16x16 pixel).

Können die Bilder nicht ggf. per JavaScript vorgeladen werden? …

Außerdem arbeitet der Kunde ausschließlich mit Netscape, der
sich identisch zum FF verhält.

Das ist doof …

Wie wäre es denn, wenn man die Tabelle splitet? und mehrere „kleinere“ Tabellen ausgiebt?

Gruß aus Hamburg
Knud Schiffmann
http://internet-partner.de

Moin

hmmm…

Jag den output mal durch den w3c-validator und such nach vergessenen schliessenden Tags oder anderen nicht-HTML-konformem Zeug.

cu

Hi,

hört sich seltsam an. Erzeuge / Lade / Sende Tabellen über ASP und
ASP.NET, läuft serverseitig. Nur die Anbindung an den Server
beeinflusst die Geschwindigkeit des Seitenaufbau. Unterschiede bei
verschiedenen Browsern stelle ich nicht fest.

Liegt Dein Problem vielleicht an einer anderen Stelle ? Berücksichtigt
Deine Anwendung den Zugriff unterschiedlicher Browser, oder werden alle gleichbehandelt ?

Gruß Andreas

Moin

Das zeugt recht eindeutig davon dass FireFox und Netscape
relativ „langsam“ sind, ohne dass man es nennenswert
beeinflussen kann:frowning:

Doch. Man kann die rund 350 unvaliden URL-definitionen durch valide ersetzen.

http://validator.w3.org/check?uri=http%3A%2F%2Finter…

Ist eine einfache Ersetzung.

Ein „DOCTYPE“ wär auch nicht schlecht. Das steuert u.a. den Modus in dem der Renderer läuft.

Ausserdem kann die Engine das nicht geöffente p-tag und das nicht geschlossene small-tag nicht gut finden.

cu

Hallo.

Hi,

Was aber viel mehr schmerzt, ist dass FF die Tabelle nach
ausführung des Scripts wahnsinnig lahm aufbaut.

Koennt ihr mir mal sagen, wie ihr eure Tabellen so langsam kriegt? Ich hab mal testweise eine mit 5000 Zeilen und (hoechstens) 3 Spalten generiert, die ist, einschliesslich Transfer von 0.5MB in 6s angezeigt (Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20030925 auf irgendwas mit 2GHz, glaube ich). Sie liegt hier: http://www.der-frank.org/tmp/foo.html Ich hab versucht, sie etwas komplizierter zu machen, aber mir gehen jetzt langsam die Ideen aus. Okay, ich war so unfair und hab im Gegensatz zu Knud valides HTML verwendet. Was unterscheidet denn Deine Tabelle von meiner? Oder zeig doch mal Deine Tabelle (ggf. mit Blinddaten).

Ich hab festgestellt, dass ihn vor allem die Anzeige von Bildern
extrem ausbremst.

Sind die Bildchen bei Dir alle unterschiedlich?

[snip] aber wenn ich daran denke, dass beim Kunden Datensätze
in 5stelliger Anzahl auf der Datenbank liegen, wird mir etwas
schwindelig…

Naja, ich hab mich vorhin mal mit ein paar Nullen vertan, 50.000 Zeilen wollte er dann doch nicht mehr (zumindest wollte ich nicht mehr warten).

Gruss vom Frank.

und hab im Gegensatz zu Knud valides HTML verwendet. Was

Spannend, habe mit der o.g. Tabelle einen Lade-Test gemacht, bei mir ergab FF ca. 11 Sekunden und IE 5 Sekunden

Aber warum ist es so?

Im Grunde arbeite ich ganz gerne mit FF aber irgendwie sind das auch die „Kleinigkeiten“ die einem dann doch das Arbeiten damit verleiden?!

Dafür sind allerdings (rein visuel) die kleineren/normalen Internetseiten wesentlich schneller mit FF als mit dem IE.

Gruß aus Hamburg
Knud Schiffmann
http://internet-partner.de

Antwort an alle
Es sind mehrere Fragen zu meiner Tabelle aufgetaucht und manche konnten meine Beobachtung mit den Browsern auch bestätigen. Dieser Beitrag beantwortet alle Beiträge auf einmal, da ich sonst einiges mehrmals schreiben müsste.

von pumpkin

Jag den output mal durch den w3c-validator und such nach
vergessenen schliessenden Tags oder anderen
nicht-HTML-konformem Zeug.

Da ist die erste Hürde schonmal das Firmennetz, bzw. ich arbeite auf localhost. Gibt es vielleicht einen Offline-Validator? Ich glaube zwar, dass mein Code „sauber“ ist, aber ich würde mir das schon gerne bestätigen lassen.

Ein „DOCTYPE“ wär auch nicht schlecht. Das steuert u.a. den
Modus in dem der Renderer läuft.

Ich benutze momentan Transitional. Ich weiss, das ist nicht unbedingt optimal, aber leider hab ich zum umschreiben der ganzen Seiten momentan keine Zeit mehr.

von Andreas Sturm

hört sich seltsam an. Erzeuge / Lade / Sende Tabellen über ASP
und
ASP.NET, läuft serverseitig. Nur die Anbindung an den Server
beeinflusst die Geschwindigkeit des Seitenaufbau. Unterschiede
bei verschiedenen Browsern stelle ich nicht fest.
Liegt Dein Problem vielleicht an einer anderen Stelle ?
Berücksichtigt
Deine Anwendung den Zugriff unterschiedlicher Browser, oder
werden alle gleichbehandelt ?

Alle Browser werden gleich behandelt, es ist aber auch nichts drin, was bei irgendeinem Browser Schwierigkeiten machen würde. Und wie schon teilweise an anderer Stelle erwähnt, es handelt sich um eine Intranetanwendung für einen Kunden, der ausschließlich Netscape (7.1) verwendet.

von Knud Schiffmann

Ich habe unter http://internet-partner.de/test.html eine
Tabelle mit 870 KB und folgende Messwerte erziehlt beim Laden:
9 Sekunden - IE6 - Tabelle wird richtig angezeigt
136 Sekunden - FireFox - Tabelle wird falsch angezeigt.

Habe mal auf diesen Link geklickt (gerade eben: 24.12. 10:15 Uhr) und die Seite hat zum Aufbau mit FF 1.0 ca. 9 Sekunden gebraucht. Da es sich um Zugriffsdaten der letzten Stunde von irgendwas (?) handelt, wird die Tabelle aber vermutlich gerade eine kleinere Version sein…

Das zeugt recht eindeutig davon dass FireFox und Netscape
relativ „langsam“ sind, ohne dass man es nennenswert
beeinflussen kann:frowning:

Tabellen behandelt der IE eben „intelligenter“. Leider.

Können die Bilder nicht ggf. per JavaScript vorgeladen werden?

Das kann ich mal ausprobieren, könnte noch etwas bringen.

Wie wäre es denn, wenn man die Tabelle splitet? und mehrere
„kleinere“ Tabellen ausgiebt?

Hat mir Cheffe „verboten“, mal schauen, ob ich da noch was drehen kann.

von Der Frank

Koennt ihr mir mal sagen, wie ihr eure Tabellen so langsam
kriegt? Ich hab mal testweise eine mit 5000 Zeilen und
(hoechstens) 3 Spalten generiert, die ist, einschliesslich
Transfer von 0.5MB in 6s angezeigt (Mozilla/5.0 (Windows; U;
Windows NT 5.0; en-US; rv:1.5) Gecko/20030925 auf irgendwas
mit 2GHz, glaube ich).

Meine Tabelle hat 8 Spalten, in mindestens 4 davon werden Bilder angezeigt (je nach Bedingung). Da liegt auch vermutlich ein kleiner Performance-Killer. Jede Zeile „kann“ anders aussehen (in gewissem Rahmen) als die davor. Das Script gibt also nicht nur einfach Zeilen aus, sondern muss jede Zeile anhand der Datensätze unterschiedlich aufbauen.
Was ich aber vergessen habe zu erwähnen: Mein Entwicklungsrechner ist ein P3-750 mit 512MB RAM und ner uralten ATI Graka (Rage 128). BS ist WinXP-Pro SP2. Der Webserver is ein Indianer mit Tomcat 4.0.6. Als Datenbank kommt eine Oracle 8.1.irgendwas zum Einsatz, die läuft auf einem Firmen-Entwicklungsserver.

Sie liegt hier:
http://www.der-frank.org/tmp/foo.html Ich
hab versucht, sie etwas komplizierter zu machen, aber mir
gehen jetzt langsam die Ideen aus.

Das ist schon in etwa so wie bei meiner, nur dass ich noch deutlich mehr Spalten habe. Aber auch hier braucht mein FF deutlich zu lange.

Sind die Bildchen bei Dir alle unterschiedlich?

Ja.

Naja, ich hab mich vorhin mal mit ein paar Nullen vertan,
50.000 Zeilen wollte er dann doch nicht mehr (zumindest wollte
ich nicht mehr warten).

50.000 sind es beim Kunden zum Glück nicht, soweit ich weiß „nur“ etwa 10-15k, was aber schon mehr als genug ist.

Der Finale Test beim Kunden wird es noch zeigen, ob das anständig läuft. Zum Glück haben die dort erheblich performantere Hardware, was hoffentlich dem FF bzw. NS zum Vorteil wird.

Bernd

Moin

Gibt es vielleicht einen
Offline-Validator?

Klar (windows-version eines anderen ist verlink, hab sie nicht getestet):
http://www.htmlhelp.com/tools/validator/offline/

Ich benutze momentan Transitional.

Es ist relativ egal welchem an angibt, hauptsache es ist überhaupt einer da.

Habe mal auf diesen Link geklickt (gerade eben: 24.12. 10:15
Uhr) und die Seite hat zum Aufbau mit FF 1.0 ca. 9 Sekunden
gebraucht.

(12:14): hab ±850KB Daten bekommen. Aufbau (opera 7.54 und FF) ging sehr schnell (