Web

Geotargeting, Web Workers, iFrames

HTML5 - was es kann (Teil 5)

Simon verantwortet als Program Manager Executive Education die Geschäftsentwicklung und die Inhalte des IDG-Weiterbildungsangebots an der Schnittstelle von Business und IT. Zuvor war er rund zehn Jahre lang als (leitender) Redakteur für die Computerwoche tätig und betreute alle Themen rund um IT-Sicherheit, Risiko-Management, Compliance und Datenschutz.
Mit Funktionen wie Geotargeting, Web Workers, iFrame-Sandboxen und History-API legt HTML5 den Grundstein für ein sicheres und intelligentes Web.

Im ersten Teil der HTML5-Serie konnten Sie alles über neue Präsentationsformen im multimedialen Bereich lesen. Im zweiten Teil beschäftigten wir uns mit den neuen Möglichkeiten zur Datenaufbereitung sowie zur Verknüpfung von Online-Diensten und lokalen Anwendungen. Im dritten Teil ging es weiterführend um neue Methoden der Datenübertragung. Der vierte Teil handelte neue Formularfunktionen und Bibliotheksabfragen, die künftig direkt im Browser stattfinden können, ab. Der fünfte und abschließende Teil unserer Serie beschäftigt sich ausführlich mit weiteren Neuerungen wie Geodiensten, iFrames, Code-Parsing und allgemeinen Verbesserungen in der Entwicklungsumgebung.

Viele der hier besprochenen Features sind eigenständige Projekte und stammen nicht aus der direkten HTML5-Sphäre. Weil sie aber in Teilen auf HTML- und JavaScript-Code bauen, werden sie jetzt so richtig bekannt und könnten mit auf den HTML5-Zug aufspringen.

Geotargeting

Das betrifft beispielsweise JavaScript-Funktionen, die es einem Web-Angebot ermöglichen, Längen- und Breitengrad des aktuellen Aufenthaltsorts des Anwenders zu bestimmen, sofern das eingesetzte Gerät über entsprechende Ortungssysteme verfügt. Das wäre auch ohne HTML5 möglich - mit der fast gleichzeitig stattfindenden Entwicklung von HTML5 und Geotargeting-Diensten ergab sich dem W3C aber die einfache Möglichkeit, eine Spezifikation für eine eigene Geolocation-API zu schreiben.

In erster Linie für Smartphones und andere mobile Geräte gedacht, ist das JavaScript-Objekt "Navigator Geolocation" auch in vielen Desktop-Browsern bereits integriert - darunter Chrome (ab Version 5), Firefox (ab Version 3.5) und Internet Explorer 9. Da Geotargeting ein sensibles Feld ist, muss der Anwender jedoch erst zustimmen, bevor die erhobenen Daten vom Code weiterverarbeitet werden dürfen. Das Feature gibt mögliche Ungenauigkeiten bei der Koordinatenangabe gleich mit aus und zeigt zusätzlich an, wie stark die Abweichungen in der Angabe der Höhe über Normalnull sein könnten. "Navigator Geolocation" arbeitet mit den beiden Funktionen getCurrentPosition und watchPosition. Die erste findet den Standort heraus, die zweite überwacht ihn und stößt wiederum die erste Funktion an, sobald sich ein Wechsel ergibt.

Firefox 3.6 unterstützt das HTML5-Geotargeting bis auf die Abfrage der Meereshöhe schon ziemlich gut. In diesem konkreten Fall beträgt die Abweichung vom tatsächlichen Standort im innerstädtischen Gebiet aber immerhin noch rund fünf Kilometer.
Firefox 3.6 unterstützt das HTML5-Geotargeting bis auf die Abfrage der Meereshöhe schon ziemlich gut. In diesem konkreten Fall beträgt die Abweichung vom tatsächlichen Standort im innerstädtischen Gebiet aber immerhin noch rund fünf Kilometer.

Interessant sind diese Möglichkeiten besonders für mobile Geräte, die beispielsweise Informationen über das Wi-Fi-Netzwerk einholen können, um GPS-Daten zu ermitteln und an das Skript weiterzureichen. Ist der Rechner nicht in der Lage, sich selbst zu orten, wartet das Skript mit der Fehlermeldung POSITION_UNAVAILABLE auf. Um Ihren Browser zu testen, gehen Sie auf diese Seite, klicken Sie die Schaltfläche an und erlauben Sie gegebenenfalls den Skript-Zugriff.

Web Workers

Die "Web Workers"-Spezifikation macht es möglich, Hintergrundprozesse anzustoßen, die laufen, während die Website im Vordergrund unabhängig davon weiter arbeitet. Die wait-, delay- und pause-Kommandos, die bisher nötig waren, um Skripte nacheinander auszuführen, werden überflüssig, weil alles gleichzeitig passieren kann. Das seit Jahrzehnten aus anderen Sprachen bekannte Threading ist für JavaScript neu und wird vielen Web-Entwicklern weiterhelfen. Die Web Workers-Objekte laufen in einer eigenen Sandbox und können keinen direkten Einfluss auf die Website oder das zugehörige DOM (Document Object Model) nehmen. Da Web Workers ausschließlich auf Nachrichtenbasis funktioniert, müssen sowohl das zugehörige Objekt als auch das Skript auf übergeordneter DOM-Ebene den jeweiligen Code enthalten, um Befehle auszutauschen. Vergleichbar ist dies in etwa mit der Client-Server-Kommunikation im gesamten Web - Web Workers übernehmen quasi die Rolle vieler kleiner Server innerhalb eines Client-Computers. Alle wichtigen Browser außer dem Internet Explorer unterstützen Web Workers bereits.

Das Debugging des Quellcodes und die Einbindung von fremden Seiten mittels iFrame werden mit HTML5 um einiges erleichtert. Mehr dazu auf der folgenden Seite.