Seitenaufbau beeinflussen - was für ein Unsinn
Martin
- browser
Hallo Leute,
hab ein Problem mit einem Auftraggeber. Dieser versucht nach
Fertigstellung eines Projektes nun den Preis zu drücken und lässt
sich nach und nach neue Kleinigkeiten einfallen die seines Ermessens
nach das Projekt als nicht korrekt umgesetzt erscheinen lassen.
Sein Hauptkritik-Punkt ist jetzt das er meint das sich die Seite zu
unruhig aufbaut. Die Seite ist komplett mit CSS erstellt und das
CSS mit den Rahmen usw. baut sich als erstes auf und dann werden nach
und nach die Bilder drübergeladen. Eben das will er nicht akzeptieren.
Seiner Meinung nach muss die Seite bei einem Klick erscheinen. Auch
mein Verweis darauf das alle Seiten im Netz sich stufenweise aufbauen
besänftigt ihn nicht.
Unglaublich mit was für einem Unsinn ich mich rumschlagen muss, oder?
Jetzt aber mal zur Sache. Hat irgendjemand ne Idee ob man den Seiten-
aufbau vielleicht doch beeinflussen kann? Ich denke ja persönlich
NEIN! - aber vielleicht habe ich etwas nicht beachtet.
Kann mir sonst jemand eine Quelle zu dem Thema sagen oder mir 2-3
Sätze mit technischen Background über Server-Technologie formulieren
die ihn durch viele Fachwörter und Technik-Blabla mundtot machen?
Danke für jede Hilfe für dieses ungewöhnliche "Problem" und ich
hoffe Euch hat das hier ein wenig erheitert! ;-)
Gruß
Martin
Hi Martin,
du könntest die ganze Chose in eine Tabelle packen
<table style="border: 0; margin: 0; padding: 0" cellspacing="0">
<tr><td>
...
</td></tr>
</table>
und dir so zu nutze machen, dass Tabellen erst dann angezeigt werden, wenn der Content vollständig geladen ist. Klar ist das nicht die feine englische Art, aber was weiß dein Auftraggeber davon?
Eine andere Möglichkeit wäre ein Timer. Wenn du "display" von "body" auf "none" setzt und erst nach 1000ms diese Eigenschaft auf leer setzt...
MfG Benjamin
Hi!
Eine andere Möglichkeit wäre ein Timer. Wenn du "display" von "body" auf "none" setzt und erst nach 1000ms diese Eigenschaft auf leer setzt...
Und was ist mit Usern ohne Javascript? Und wenn, dann per <body onload="...">. Baz das am besten einfach mal ein und zeig deinem Chef die Seite dann mal mit Modem oder ISDN, das wird ihn scho überzeugen...
Gruß aus Iserlohn
Martin
Hi,
wenn ich die display eigenschaft im "body onload" ändere, dann wird
die eigenschaft doch direkt beim aufruf der seite geändert. Oder
wird "onload" erst ausgeführt wenn der komplette inhalt einer seite
geladen wurde?
Danke und Gruß
Martin
Baz das am besten einfach mal ein und zeig deinem Chef die Seite dann mal mit Modem oder ISDN, das wird ihn scho überzeugen...
Hi,
Oder
wird "onload" erst ausgeführt wenn der komplette inhalt einer seite
geladen wurde?
oder.
Cheatah
Hello,
Hi,
Oder
wird "onload" erst ausgeführt wenn der komplette inhalt einer seite
geladen wurde?oder.
Also erst, wenn alle Elemente der Seite geladen wurden?
Auch die nachzuladenden Ressourcen?
Kannst Du das für alle Browser garantieren?
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hi,
Also erst, wenn alle Elemente der Seite geladen wurden?
Auch die nachzuladenden Ressourcen?
ja.
Kannst Du das für alle Browser garantieren?
Nein. Sofern Du für "die nachzuladenden Ressourcen" aber eine hinreichend simple Definition findest, kann ich Dir im Rahmen der mit onload verbundenen, natürlichen Beschränkungen eine Garantie geben.
Cheatah
Hello,
Kannst Du das für alle Browser garantieren?
Nein. Sofern Du für "die nachzuladenden Ressourcen" aber eine hinreichend simple Definition findest, kann ich Dir im Rahmen der mit onload verbundenen, natürlichen Beschränkungen eine Garantie geben.
Da haben wir den Salat!
Hinreichend simpel wird man das Dank offener Architektur nicht definieren können.
Wenn nämlich z.B. einige Ressourcen nicht ladbar sind, wird trotzdem irgendwann onLoad ausgelöst.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hallo Tom,
Wenn nämlich z.B. einige Ressourcen nicht ladbar sind, wird trotzdem irgendwann onLoad ausgelöst.
Sicher?
Zumindest der IE verzichtet gern auf onload, wenn ein oder mehrere Anforderungen eingebundener Ressourcen nicht beantwortet werden.
Konkret: Wenn z.B. die Anforderung eines Bildes gemäß HTTP "sauber" mit einem 404er abgefertigt wird, ist alles in Ordnung. Wird der Request aber entweder gar nicht oder nicht vollständig beantwortet, schlägt irgendwann ein Timeout zu. Der Ladevorgang der Seite ist dann de facto abgeschlossen, aber das onload-Event fällt unter den Tisch.
Wie andere Browser damit umgehen, kann ich allerdings nicht sagen.
So long,
Martin
Hi,
Also erst, wenn alle Elemente der Seite geladen wurden?
Auch die nachzuladenden Ressourcen?
Ja.
Kannst Du das für alle Browser garantieren?
Das kann niemand - schon allein deshalb, weil es Browser gibt, die Scripts gar nicht ausführen, also auch nicht die, die per onload-Attribut angegeben sind, und diese Browser tun das schon gar nicht zum geforderten Zeitpunkt.
Aber ein Browser, der onload vorher auslöst, hat mindestens einen Fehler.
onload = script [CT]
The onload event occurs when the user agent finishes loading a window [... Zeugs zu Frameset]
Beachte: "finishes loading a WINDOW" - nicht "finishes loading a DOCUMENT".
cu,
Andreas
Hello,
Beachte: "finishes loading a WINDOW" - nicht "finishes loading a DOCUMENT".
Ja, "beendet"... Muss aber nicht erfolgreich sein. Steht da aber nicht explizit!
Das führt gerade bei Bilder-Vorladescripten und Skalierungstricks gerne zu Fehlern.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hallo Martin,
Hmmm... onload is wirklich besser. Die User ohne JS kannst du umgehen, indem die CSS-Eigenschaft (display) bzw. den Container, der ihn aufnimmt, selbst auch mit JS schreibst:
<body onload="document.getElementById('preload').style.display = '';">
<script type="text/javascript">
<!--
document.write('<div id="preload" style="display: none;">');
// -->
</script>
...
<script type="text/javascript">
<!--
document.write('</div>');
// -->
</script>
</body>
MfG Benjamin
Hi Benjamin,
habe Deine Lösung ausprobiert und eigentlich klappt das ganz gut.
Problem ist jetzt allerdings das er zwar wartet und dann die gesamte
Seite darstellt - aber leider auch nicht ganz. Nachträglich wenn die
Seite schon steht werden erst die CSS-borders reingeblendet. Argh!
Gruß
Sven
Wobei es jetzt viel besser geladen wird als vorher - und aufm Mac und
im Firefox ist es sogar perfekt so.
Vielen Dank!
Gruß
Hallo Sven,
CSS-Borders reingeblendet? Das müssen aber ganz schön große Pixel-Klopper sein, wenn Sie das Erscheinungsbild der Seite beim (Nicht-)Anzeigen so verändern. Vielleicht findet sich für so dicke Ränder eine andere Lösung?
MfG Benjamin
Hallo Martin,
dazu fällt mir so auf die Schnelle nur ein JavaScript-Preloader ein. Hier ein Tutorial:
http://www.ulf-theis.de/tutorials/dreamweaver/javascript/index.php
Gruß
bine
Hello,
ich würde mich nicht zu weit aus dem Fenster lehnen.
Es gibt durchaus Techniken und Tricks, mit denen "Gezappel" vermieden werden kann, auch wenn diese vielleicht manchmal nicht nach W3C-Standard sind.
Allerdings wäre das Festlegen der Imgage-Maße im Primary HTML schon mal ein Weg, mehr Ruhe in die Page zu bekommen. Die sollten dann auch zur tatsächlichen Größe des Secondary Request (also der Images selber) passen.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hi,
ich würde mich nicht zu weit aus dem Fenster lehnen.
Es gibt durchaus Techniken und Tricks, mit denen "Gezappel" vermieden werden kann, auch wenn diese vielleicht manchmal nicht nach W3C-Standard sind.
dann haette "Gezappel" aber im Pflichtenheft explizit ausgeschlossen sein muessen (inkl. Spezifikation, was "Gezappel" ueberhaupt ist im Server-Browser Kontext :-). Ist "Gezappel" naemlich nicht ausgeschlossen, dass "zappelt" es naemlich immer "ein wenig", gerade bei schwaecherer Konnektivitaet. Moeglicherweise ist der Auftraggeber keine Webapplikationen "gewohnt" und faehrt auf "rich clients" ab?
Ich wuerde dem Threadinitiator also eindeutig recht geben (nur fuer den Fall, dass es jemand interessiert).
Gruss,
Ludger
Moeglicherweise ist der Auftraggeber keine Webapplikationen "gewohnt" und faehrt auf "rich clients" ab?
Hallo,
korrekt - der Auftraggeber bewegt sich eher im Umfeld Power-Point
Folien. :-(
Gruß
Martin
Hi!
korrekt - der Auftraggeber bewegt sich eher im Umfeld Power-Point
Folien. :-(
Linktipp: Warum können Werbeagenturen keine guten WWW-Seiten schreiben?
Gruß aus Iserlohn
Martin
Hallo,
Jetzt aber mal zur Sache. Hat irgendjemand ne Idee ob man den Seiten-
aufbau vielleicht doch beeinflussen kann? Ich denke ja persönlich
NEIN! - aber vielleicht habe ich etwas nicht beachtet.
Mit CSS kannst du Bilder als Hintergund verwenden, wäre wohl hinsichtlich
der fehlenden ALT-Texte usw. nachteilig und sieht wohl bei einigen Browsern
kaum besser aus, vielleicht könntest du dann gleich Tabellen verwenden.
Allerdings kann ich die Kritik teilweise nachvollziehen, insbesondere das
Nachpositionieren von Elementen mit Rutschen und Flackern beim Seitenaufbau
finde ich lästig, sowas mag in Grenzen auch von der Art der Positionierung und
der Reihenfolge im HTML abhängen.
Grüsse
Cyx23
Hello Cyx,
ich hätte da eine private Frage an Dich.
Kannst Du mir mal Deine eMail schicken?
Aber bitte nur dann, wenn es nicht so ein Theater gibt, wie neulich mit A.L. ;-)
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hallo,
Aber bitte nur dann, wenn es nicht so ein Theater gibt, wie neulich mit A.L. ;-)
die Geschichte kenn ich nun gar nicht, irgendwas im Spamfilter versiebt oder was? Kannst du mir ja dann gleich mal zurückmailen.
Grüsse
Cyx23
Hallo Martin,
Sein Hauptkritik-Punkt ist jetzt das er meint das sich die Seite zu
unruhig aufbaut. Die Seite ist komplett mit CSS erstellt und das
CSS mit den Rahmen usw. baut sich als erstes auf und dann werden nach
und nach die Bilder drübergeladen. Eben das will er nicht akzeptieren.
Seiner Meinung nach muss die Seite bei einem Klick erscheinen. Auch
mein Verweis darauf das alle Seiten im Netz sich stufenweise aufbauen
besänftigt ihn nicht.Unglaublich mit was für einem Unsinn ich mich rumschlagen muss, oder?
Mach dir klar, dass du *vor* dem Projekt abklären musst, welche Dinge wie gelöst werden, was das kostet und wie lange das dauern darf (soll). Hinterher darf bei _Nichtgefallen_ (!= Nichterfüllung) nur dann nachgebessert werden, wenn auch Geld fließt. Das Problem ist natürlich, wenn man einmal einknickt und kleinere Macken ausbessert, dann wird man schnell für noch viel mehr kleinere Kleinigkeiten herangezogen.
Jetzt aber mal zur Sache. Hat irgendjemand ne Idee ob man den Seiten-
aufbau vielleicht doch beeinflussen kann? Ich denke ja persönlich
NEIN! - aber vielleicht habe ich etwas nicht beachtet.
Klar kann man das. Wenn du die Seite auf einem Server "berechnest", so dauert das seine Zeit, bei ungünstiger Programmierung der Datenverarbeitung und/oder schlechter Systemperformance kann es bei Seiten, die mehr als "Hallo Welt" enthalten und mehr als einen Datenbankquery enthalten schonmal mehrere Sekunden dauern, bis das gesamte Quelltextdokument ausgeliefert ist. Sprachen wie PHP haben die unangenehme Angewohnheit, dass sie mit echo ausgegebene Daten sofort an den Empfänger weiterschicken. Wenn man sich jetzt nicht an den fundamentalen Grundsatz Eingabe-Verarbeitung-Ausgabe hält, sondern munter immer alles, was schon fertig ist ausgibt, dann dauert der Transfer der Daten eben in etwa so lange, wie die Berechnung. Wenn man stattdessen das gesamte Dokument in eins ausgibt und dann als nächstes gleich ein exit mitsendet, dann bekommt der Browser die 8-10KB (mehr sollte es ja nicht sein) in sehr kurzer Zeit, soll heißen in ein bis drei Datenpaketen direkt nacheinander. Das hat zur Folge, dass er das Dokument sofort ganzheitlich rendern kann, statt mit Fragmenten von oben nach unten durchzurendern, bis er den ganzen Baum kennt. Das wiederum bedeutet, dass es etwaige "Wackler" nicht gibt, wenn auch das CSS sofort zur Verfügung steht, weil er die Elemente nicht zuerst willkürlich anzuordnen versucht, sondern den Aufbau schon kennt. Lange Rede kurzer Sinn: Verwende Content Buffering.
Kann mir sonst jemand eine Quelle zu dem Thema sagen oder mir 2-3
Sätze mit technischen Background über Server-Technologie formulieren
die ihn durch viele Fachwörter und Technik-Blabla mundtot machen?
Das ist sicher der falsche Weg. Erkläre ihm in deinen Worten, warum es "zappelt", und warum das *niemanden* stören wird, solange die Seite ruhig ist, wenn sie dann mal geladen ist (was freilich wirklich nicht länger als 3 Sekunden dauern sollte).
Grüße aus Barsinghausen,
Fabian
Hello,
[...] soll heißen in ein bis drei Datenpaketen direkt nacheinander. Das hat zur Folge, dass er das Dokument sofort ganzheitlich rendern kann,
Das ist aber nicht so!
Eine "normale" HTML-Seite besteht immerhin aus dem primären Dokument und den darin referenzierten sekundären Ressourcen, Framesets mal ganz außer acht gelassen.
Der Browser fängt aber ggf. schon mit der Interpretation an, wenn die ersten Zeilen des Hauptdokumentes angekommen sind.
PHP bietet hiergegen aber auch die Möglichkeit, mit ob_start() zu arbeiten. Geht manchmal auch gar nicht anders, wenn man nämlich die von Dir schon erwähnte "nach und nach Technik" anwendet, und am Ende noch den Wert einer Variable ändern muss, die eigentlich schon am Anfang ausgegeben wurde.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
moin!
nimm die seite wieder runter vom server. und unterhalte dich in aller ruhe mit dem kunden nochmal darüber, was er eigentlich will.
imho wurde das, was jetzt angemeckert wird nat. nicht vor auftragsvergabe angesprochen und betrifft somit nicht das bestehende angebot.
gruß.
roger.
Tachchen!
Mal von der anderen Seite betrachtet:
Eine Seite, die "mit einem Schlag" da ist, ist eine ungewöhnliche
Seite, die eine nicht gewöhnliche Arbeit des Webdesigners erfordert.
Über Dinge, die über die gewöhnliche Beschaffenheit eines Werkes
hinaus gehen, muss vorher explizit gesprochen werden. Und wenn dies
ein ausdrücklicher Wunsch des Bestellers ist, muss er diesen vorher
äußern ... und dir so die Möglichkeit geben, dies in deine Kalkulation
einfließen zu lassen.
In keinem Fall ist dies ein Mangel!
Das wäre ungefähr so, als bestelltest du beim Schreiner einen Tisch
"2m x 1,20m, 90cm hoch, Eiche, lackiert" und weigertest dich dann,
ihn abzunehmen, weil er 4 Beine hat, obwohl dir 3 Beine doch viel
lieber wären, weil das weniger wackelt.
Die Moral von der Geschicht:
Deine Seite hat diesbezüglich keinen Mangel, der Besteller ist folgerichtig
zur Abnahme verpflichtet und anschließend zur Bezahlung des Werklohnes.
Wenn er weitere Wünsche hat, kann er dies gerne jetzt oder anschließend
unter Vereinbarung einer entsprechend auszuhandelnden Vergütung Kund tun. ;-)
Gruß
Die schwarze Piste
Hallo Martin
Sein Hauptkritik-Punkt ist jetzt das er meint das sich die Seite zu
unruhig aufbaut.
Ist das bei deiner Seite besonders ausgeprägt, bzw. verschieben sich
Seiteninhalte nachdem sie angezeigt werden nocheinmal, oder betrifft es
nur den "Mosaikeffekt".
Die Seite ist komplett mit CSS erstellt und das
CSS mit den Rahmen usw. baut sich als erstes auf und dann werden nach
und nach die Bilder drübergeladen.
Einzelne Bilder oder Designgrafiken?
Wenn es viele einzelne Designgrafiken sind, dann überlege dir, ob es nicht
zu viele kleine Grafiken sind. Wenige größere Grafiken werden (meist)
schneller geladen als viele Kleine und bauen das Gesamtbild gleichmäßiger
auf.
Eben das will er nicht akzeptieren.
Seiner Meinung nach muss die Seite bei einem Klick erscheinen.
Erkläre ihm, warum es eine gewisse Zeit dauert, bis der Browser die
Seite komplett anzeigen kann.
Frage ihn dann, ob er wünscht, dass die Seite erst angezeigt wird, wenn
sie komplett ist, damit seine Kunden seine Seite wieder verlassen, wenn
es ihnen zulange dauert, ohne überhaupt etwas von der Seite gesehen zu
haben.
Wenn jemand eine Seite aufruft und es tut sich eine Weile nichts, ist er
ganz schnell wieder weg. Wenn er sehr schnell die Texte der Seite sieht
und sich diese nicht noch ständig verschieben, beginnt er zu lesen, ohne
dass es ihm wirklich bewusst wird, dass die Bilder erst später dazukommen.
Er ist es nicht anders gewohnt.
Jetzt aber mal zur Sache. Hat irgendjemand ne Idee ob man den Seiten-
aufbau vielleicht doch beeinflussen kann? Ich denke ja persönlich
NEIN! - aber vielleicht habe ich etwas nicht beachtet.
Schneller Server, schnelle Internetverbindung, schneller Rechner und
möglichst wenig einzelne Resourcen, die geladen werden müssen.
Auf Wiederlesen
Detlef
Hi,
Hat irgendjemand ne Idee ob man den Seiten-
aufbau vielleicht doch beeinflussen kann?
Ja. Ohne den Thread gelesen zu haben ;-): Pack den Content einfach komplett in eine Tabelle mit nur einer Zelle. Tabellen werden erst angezeigt, wenn sie fertig gerendert sind. Um das zu erschweren, solltest Du auch bei den IMGs WIDTH & HEIGHT weglassen. ;->
Aber es gibt noch einige Alternativen. Spontan:
Gruß, Cybaer
Hi,
Hat irgendjemand ne Idee ob man den Seiten-
aufbau vielleicht doch beeinflussen kann?Ja. Ohne den Thread gelesen zu haben ;-): Pack den Content einfach komplett in eine Tabelle mit nur einer Zelle.
ich prognostiziere, dass der Abnehmer dann ueber "die langen Ladezeiten" maulen wird. :-)
Gruss,
Ludger