(gf)-Webdesign geblockte Inhalte Zur vollständigen Anzeige der Seite bitte JavaScript / Scripting / geblockte Inhalte aktivieren.
| Startseite  Webcams in Deutschland Deutschland  Webcams in Europa Europa  Webcams global Global  | | Fenstergröße anpassen |

Webcams

Technische Konzeptstudie zu einer Linksammlung mit Bildpräsentation

Ziel

Um Übertragungsvolumen vom Server zum Clienten zu minimieren, wurde bei dieser Linksammlung der Ansatz verfolgt, (ggf. vom Server produzierte) Datensätze mit JavaScript in einer Rumpf-HTML-Seite zu übertragen und den HTML-Code zur Darstellung der Links von einem zentralen JavaScript lokal generieren zu lassen.

Prinzipiell wird dieses Ziel erreicht. Eine Seite mit 57 Links, die im derzeitigen spartanischen Design ca. 193 KB in Anspruch nehmen würde, umfaßt für die HTML-Seite mit den Datensätzen ca. 17 KB und für das zentrale JavaScript ca. 16 KB (jeweils ohne die Popup-Funktionalität).

Daneben wurde auf die variable Darstellung der Bilder in Popup-Fenstern Wert gelegt und dabei der Tatsache Rechnung getragen, daß auch kleine Formate in vergrößerter Darstellung einen guten Eindruck vermitteln. Den Bildeindruck trüben weniger die Auflösung als vielmehr die Farb- und Kontrastmängel.

Die praktische Umsetzung förderte jedoch etliche Schwierigkeiten im Detail zutage, die vorwiegend mit den Browser-Unterschieden zusammenhängen.

Zeitaufwand

Das Projekt umfaßte ca. 4 Wochen.

Umsetzung

Ein Link zu einer Webcam wurde mit 8 Merkmalen erfaßt:

  • Kategorie (meist eine Stadt), z.B. "Düsseldorf"
  • URL der Originalbild-Website, z.B. "http://www.duesseldorf.de/cam/index2.shtml"
  • URL des Originalbildes, z.B. "http://www.duesseldorf.de/webcam2/fullsize.jpg"
  • Erläuterung, z.B. "Burgplatz, Schlossturm, St. Lambertus, Oberkasseler Brücke."
  • Breite des Originalbildes, z.B. "352"
  • Höhe des Originalbildes, z.B. "288"
  • Name des Thumbnails, z.B. "thumb_d_burgplatz.jpg"
  • Speichername, z.B. "d_burgplatz"

Zwei weitere Merkmale,

  • Bildvergrößerung und
  • Bilderneuerung,

werden vom Benutzer gewählt.

Die Thumbnails wurden aus repräsentativen Originalbildern hergestellt und spiegeln daher nicht aktuelle Originalbilder wieder. Sie dienen auch als Platzhalter, solange das Bild noch nicht geladen ist. Der Speichername steht, ergänzt um Datum und Uhrzeit, unter dem Originalbild und erleichtert die Namensfindung beim Abspeichern eines Bildes. Mit Strg-a, Strg-c kann der gesamte Inhalt des Popup-Fensters kopiert und mit Strg-v in das Feld "Dateiname" eingefügt werden. Alles, was auf die erste Zeile folgt, wird dabei ignoriert.

Download "webcam.zip" (<120 KB). Die aktuellen Webcam-Seiten einschl. aller Thumbnails stehen zum Download bereit, so daß sie lokal installiert werden können.

Technische Hinweise

In dieser Konzeptstudie wurde ein clientzentrierter Ansatz mit verschiedenen Varianten erprobt. Die Links sind mit ihren Merkmalen im Quelltext als zweidimensionales Array definiert. Der größte Teil des HTML-Codes wird erst beim Anwender von einem JavaScript generiert. Zuvor wird das Array nach der Kategorie sortiert. Innerhalb der Kategorie bleibt die im Quelltext vorgegebene Reihenfolge erhalten.

Für die regelmäßige Erneuerung der Bilder wurden verschiedene Techniken eingesetzt.

Netscape Navigator 4.x  Im Netscape Navigator 4.7 wird das Popup-Fenster regelmäßig von der aufrufenden Seite neu aufgerufen. Die fortlaufende Bildnummer wird in einer Feldvariable der aufrufenden Seite gespeichert.

Netscape 7  Opera  In Netscape 7.0 und Opera 6.01 tauscht ein JavaScript des Popup-Fensters das Bild regelmäßig aus. Die fortlaufende Bildnummer wird in einer Variable des Popup-Fensters gespeichert.

Internet Explorer  Im Internet Explorer führt ein JavaScript des Popup-Fensters regelmäßig einen Reload durch. Die fortlaufende Bildnummer wird währenddessen im Fensternamen gespeichert.

Bug: Die Sortierung wird durch den Gebrauch von HTML-Umlauten (z.B. &uuml; für ü) fehlerhaft (z.B. Düsseldorf vor Darmstadt).

Netscape 7  Bug: Netscape 7.0 zeigt trotz gegenteiliger Anweisung Scrollbalken im Popup-Fenster. Konsequenz: Der Speichername wird nicht mehr rechts vom Originalbild, sondern unter das Originalbild und die Bildlegende auf das Originalbild gelegt.

Netscape 7  Bug: Netscape 7.0 verliert bei einem Reload des mit generiertem Code erzeugten Popup-Fensters die Orientierung und findet keine Dateien mit relativen Pfadangaben mehr (Stylesheet, thumbnail).

Netscape Navigator 4.x  Netscape 7  Opera  Bug: Netscape und Opera 6.01 akzeptieren keine Anker in generierten Code eines Popup-Fensters. Links zu Textabsätzen sind damit nicht möglich.

Opera  Bug: Opera 6.01 benötigt zum Aufbau einer Seite mit 57 Links bei lokal installierten Dateien ca. 38,0 Sekunden. (Zum Vergleich: Internet Explorer 6.0 ca. 0,3 Sekunden, Netscape 4.7 ca. 1,2 Sekunden, Netscape 6.0 ca. 1,4 Sekunden.) Wird während des Seitenaufbaus schon auf ein Link geklickt, hängt sich Opera auf.

Opera  Bug: Opera 6.01 läßt den Reload eines mit generiertem Code erzeugten Popup-Fensters nicht zu.

Opera  Bug: Opera 6.01 lassen sich HTML-Elementinhalte nicht dynamisch ändern.

Opera  Bug: Opera 6.01 arbeitet fehlerhaft bei Befehlen zur Einschaltung der Statuszeile und der Menüleiste eines Popups. Auch die Lokalisation des Popup-Fensters gelingt erst mit einem zusätzlichen window.moveTo(0,0).

Opera  Bug: Opera 6.01 ignoriert den Event-Handler onUnload und die HTML-Anweisung <title> bei einem mit generiertem Code erzeugten Popup-Fenster. (Der Event-Handler onLoad wird beachtet.)

Opera  Bug: In Opera 6.01 gelingt es nicht, einen Zeilenumbruch zwischen einem Wort und einer Dropdownliste zu verhindern, weder mit <nobr></nobr>, noch mit <span style="white-space:nowrap;"></span> (wobei Netscape 4.7 auch abstürzt), noch mit einem verbindenden &nbsp;.

Netscape Navigator 4.x  Bug: Netscape 4.7 vergißt häufig bei einer Veränderung der Fenstergröße, Teile des Inhalts darzustellen. Konsequenz: Das sattsam bekannte Problem wurde wie üblich mit dem Event-Handler onResize abgefangen.

Netscape Navigator 4.x  Bug: In Netscape 4.7 ist im generierten Code eines Popup-Fensters ein JavaScript nicht vorhanden. Ein Reload oder Bildertausch durch ein Script des Popup-Fensters ist damit nicht möglich.

Netscape Navigator 4.x  Bug: In Netscape 4.7 sind im generierten Code eines Popup-Fensters die Bilder nicht ansprechbar. Das Image-Array hat die Länge 0. Damit ist auch kein Bildertausch durch die aufrufende Seite möglich.

Netscape Navigator 4.x  Bug: Netscape 4.7 interpretiert HTML-Sonderzeichen "größer als" und "kleiner als" wie im unten aufgeführten Beispielcode zunächst als HTML-Code. Erst nach einem Reload wird der Text richtig dargestellt.

Netscape Navigator 4.x  Bug: Netscape 4.7 beachtet nicht immer die eigentlich erzwungene Leerstelle mit &nbsp;, so daß z.B. ein Bild und ein Wort bei bestimmter Fensterbreite doch zusammenrücken.

Internet Explorer  Bug: Der Internet-Explorer stürzt ab, wenn im generierten Code des Popup-Fensters ein externes JavaScript, z.B. mit

myWin.document.open(); [...]
myWin.document.writeln('<SCR'+'IPT language="javascript" type="text\/javascript" src="campop.js"></SCR'+'IPT>');

eingebunden wird und der Befehl myWin.document.close(); erfolgt, ehe das Script vollständig geladen ist. Beim eingebundenen externen CSS mit

myWin.document.writeln('<li'+'nk rel="STY'+'LESHEET" type="text\/css" href="cam.css">');

ist das Problem noch nicht aufgetreten. Konsequenz: Keine Einbindung eines externen JavaScripts in generierten HTML-Code eines Popup-Fensters.

Internet Explorer  Bug: Der Internet-Explorer läßt im Popup-Fenster die dynamische Änderung des z-Index eines Layers nicht zu. In Opera und Netscape 7.0 keine Probleme.

Beispiel

Darstellung von drei Datensätzen zweier Kategorien.


(gf)-Webdesign Düsseldorf Georg Frevel 05-06.2003 (Keine Verantwortung für die Inhalte externer Links.)