Permalink

Was ist ein guter Standard?

Effizienz

Laut Jakob Nielsen sind Menschen am produktivsten, wenn die Reaktionszeit des Rechners auf ihren Mausklick weniger als eine Sekunde beträgt. Menschen verlieren ihre Konzentration, wenn eine Webseite länger als zehn Sekunden braucht, um zu erscheinen.

Anmerkung des Übersetzers:

Jakob Nielsen ist der Usability-Guru für Webseiten schlechthin. Der gebürtige Däne begann Anfang der 1980er Jahre, sich theoretisch mit Nutzwert und Bedienfreundlichkeit zu beschäftigen. Nielsens Buch »Designing Web Usability: The Practice of Simplicity« (auf deutsch »Erfolg des Einfachen«) ist zu einer Art Bibel des Web-Designs geworden. Auf seiner Website http://www.useit.com finden Sie unter anderem Nielsens 14-tägige Kolumne »Alertbox«, die sich mit der Benutzungsfreundlichkeit von Online-Angeboten befasst, neue Erkenntnisse vorstellt und wichtige Grundsatzregeln zusammenfasst.

Natürlich werden Computer immer mächtiger, und die Bandbreiten steigen kontinuierlich, zumindest im Durchschnitt. Aber zur gleichen Zeit werden neue Geräte an das Web angeschlossen, zum Beispiel Mobiltelefone und Fernseher, und diese sind wesentlich langsamer als Computer. Auch sie werden sich vielleicht verbessern, allerdings werden sie von der Leistung her immer hinter Desktop-Rechnern zurückbleiben. Aber dann wird es zweifellos wieder neue Geräte (und Applikationen) geben. Entwickler von Web-Technologien werden somit immer auf Effizienz achten müssen.

Geschwindigkeitseinbußen können beim Server auftreten, wenn die Generierung einer Antwort auf eine Frage zu komplex gerät; im Netzwerk, wenn der Datenfluss zu groß ist; beim Benutzer, wenn die Darstellung der Daten zu schwierig ist.

Beim Entwurf von formalen Sprachen, die Ressourcen speichern, sollten Entwickler sicherstellen, dass die Sprachen leicht zu parsen und einigermaßen kompakt sind. »Schrittweise Darstellung« (Progressive rendering, das heißt die Darstellung einer Antwort beginnt bereits dann, wenn noch nicht alle Daten angekommen sind) kann auch helfen. CSS beispielsweise wurde so gestaltet, dass jede Zeile eines Dokuments dargestellt wird, sobald sie übertragen worden ist (Außer für Text innerhalb von Tabellen, wofür etwas Mehrarbeit des Stylesheet-Autoren benötigt wird). Zwischenspeicher helfen ebenso, daher ist die Aufteilung eines Dokuments in zwischenspeicherbare und nicht zwischenspeicherbare Teile eine gute Sache. HTML und XLink zum Beispiel erlauben, dass Dokumente aus Teilen zusammengesetzt werden, wovon sich einige auf verschiedene Dokumente aufteilen können. Manchmal sind Einrichtungen zur Kompression oder Umwandlung in ein Binärformat notwendig.

Für gewöhnlich ist es eine gute Idee, in einer Sprache Methoden zur Entfernung von Redundanz bereitzustellen (auch wenn sie gegen ein Mehr an Komplexität der Sprache abgewogen werden müssen). Deswegen haben HTML und SVG einen Mechanismus, einem Element eine »Klasse« zuzuweisen und ein Styling für alle Elemente der gleichen Klassen an einer Stelle zu definieren. SVG erlaubt darüber hinaus die Wiederverwendung von Grafikobjekten an verschiedenen Stellen: Um einen Stern zu zeichnen, der aus 12 Punkten besteht, reicht ein einziger Punkt aus, der 12 Mal an unterschiedlichen Stellen dargestellt wird. CSS verfügt über mehrere Mechanismen, um Regeln zu gruppieren.

Wie auch immer, Intuition ist beim Abschätzen von Effizienz oftmals kein guter Ratgeber. Die Durchlaufleistung eines Netzwerkes zum Beispiel verläuft nicht linear: Eine Nachricht, die aus einem einzigen TCP-Paket besteht, ist wesentlich schneller als eine, die aus zwei Paketen besteht, aber vier Pakete brauchen für gewöhnlich weniger Zeit als zwei unterschiedliche Nachrichten aus zwei Paketen (siehe [Frystyk97]). Java wird oftmals als sehr langsam wahrgenommen, aber Jigsaw (ein in Java geschriebener HTTP-Server) kann normalerweise gegen Apache (ein HTTP-Server in C) bestehen, denn ein Großteil der wahrgenommenen Langsamkeit kommt durch das Starten der Java Virtuel Machine; wenn diese einmal läuft, ist Java ausreichend schnell (siehe [JigPerf]). Und vor einiger Zeit zeigte eine W3C-Studie, dass der größte Gewinn aus radikalen Veränderungen resultiert: Es half viel, GIF durch PNG und HTTP/1.0 durch HTTP/1.1 zu ersetzen, aber nicht annähernd so viel wie das Ersetzen eines Bildes durch Text in einem StyleSheet. Mit SVG werden die Möglichkeiten sich wesentlich erhöhen.

Siehe auch

[Frystyk97]
Frystyk Nielsen, Henrik; Gettys Jim; Baird-Smith, Anselm; Prud'hommeaux, Eric; Lie, Håkon Wium; Lilley Chris. Network performance effects of HTTP/1.1, CSS 1, and PNG. 24 Jun 1997. W3C Note. URL: http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html
[JigPerf]
Jigsaw performance evaluation. 27 May 1998. W3C. (Part of the Jigsaw documentation, updated with each version.) URL: http://www.w3.org/Jigsaw/User/Introduction/performance.html
[Khare99]
Khare, Rohit; Jacobs, Ian. W3C Recommendations Reduce 'World Wide Wait'. 1999. W3C. A summary of [Frystyk97] URL: http://www.w3.org/Protocols/NL-PerfNote.html
[Nielsen97]
Nielsen, Jakob. The need for speed. 1 Mar 1997. Alertbox column. URL: http://www.useit.com/alertbox/9703a.html