Sie sind hier
E-Book

Single-Page-Web-Apps

JavaScript im Einsatz: Webseiten erstellen mit AngularJS, Meteor und jQuery Mobile

AutorHeiko Spindler
VerlagFranzis
Erscheinungsjahr2014
Seitenanzahl288 Seiten
ISBN9783645203104
FormatPDF/ePUB
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis19,99 EUR
Single-Page-Web-Apps sind eine neue Art, Webanwendungen zu bauen. Im Gegensatz zu klassischen Webseiten führen Single-Page-Web-Apps keinen Seitenwechsel mehr durch die Oberfläche wird über dynamischen Austausch der HTML-Elemente auf einer einzigen Seite mit JavaScript verändert. Die Implementierung erfolgt mit den Technologien HTML5, CSS3 und JavaScript. Die HTML-Seiten werden zum größten Teil dynamisch im Browser erzeugt. Die Daten werden meist über JSON oder XML mit einem Backend ausgetauscht. Eine Single-Page-Web-App ist über eine URL im Browser universell erreichbar. Eine Installation ist nicht notwendig. Im Unternehmensumfeld reduziert diese Eigenschaft enorm die Kosten für Installation und Verteilung. Viele Benutzer wollen Dienste auf unterschiedlichen Geräten nutzen. Der Zugriff muss vom heimischen PC genauso gut funktionieren wie vom Tablet oder Smartphone aus. Eine separate Entwicklung für jede Zielplattform ist teuer. Das Web wird die übergreifende Plattform für alle Betriebssysteme und Gerätearten. Dank HTML und JavaScript laufen Single-Page-Web-Apps auf allen wichtigen mobilen Betriebssystemen wie Android, Windows Phone und iOS. Offline-Fähigkeiten Mit den neuen Fähigkeiten von HTML5, wie dem LocalStorage, gibt es zum ersten Mal eine Möglichkeit, effiziente Cache-Strategien und Offline-Fähigkeiten zu etablieren. Es ist sehr leicht, mit den verwendeten Technologien zu starten als Entwicklungsumgebung reicht ein guter Texteditor aus. Zum Ausführen reicht ein Browser, der mit den entsprechenden Plug-ins sogar Debugging bereitstellt. Alle diese Komponenten sind für den Einsteiger kostenlos verfügbar.

Heiko Spindler ist Softwarearchitekt und Autor für Themen rund um die Softwareentwicklung. Er spricht regelmäßig auf Konferenzen und schreibt Fachartikel. Als Dozent unterrichtet er seit 2008 an der Fachhochschule Gießen-Friedberg im Studiengang Wirtschaftsinformatik. Zusätzlich beschäftigt er sich seit vielen Jahren mit Kreativitätstechniken, Gehirnjogging, Mind Mapping und Gedächtnistraining. Heiko Spindler betreibt die Websites HirnSport.de und DenkTipps.de und ist Buchautor zum Thema Gehirnjogging.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

2


JavaScript für Entwickler


2.1Einleitung


Diese Kapitel richten sich an Leser, die Erfahrungen in der Programmierung in anderen Sprachen gesammelt haben. Wir starten nicht bei den absoluten Einsteigerthemen, sondern konzentrieren uns auf die Besonderheiten von JavaScript im Vergleich zu üblichen Programmiersprachen. Von diesen Besonderheiten hat JavaScript einige zu bieten, und darüber stolpern viele Entwickler beim Umstieg auf JavaScript.

Tipp: Starten mit JavaScript

Wer mit den Grundlagen, wie Syntax und Kontrollstrukturen, starten möchte, findet unter folgenden Links einen guten Einstieg:

Auf Wikipedia gibt es eine 5-Minuten-Einführung in JavaScript:

de.wikipedia.org/wiki/JavaScript#Sprachelemente

Sehr zu empfehlen ist folgendes kostenlose Online-Buch:

eloquentjavascript.net

2.2Dynamisches Web mit JavaScript


JavaScript wurde erfunden, um Webseiten dynamisch im Browser zu ändern und Interaktionen mit dem Benutzer zu realisieren. Das ist heute immer noch der Haupteinsatz. Der Standard ECMAScript (ECMA-262, Edition 5: www.ecma-international.org/

publications/standards/Ecma-262.htm) beschreibt die Sprache und ihre Elemente. An der Syntax ist die Verwandtschaft mit der Sprache »C« zu erkennen. Der Namensbestandteil »Java« ist eher als Marketing-Trick zu bezeichnen, denn die Gemeinsamkeiten mit Java sind gering.

JavaScript ist eine dynamisch typisierte, objektorientierte Scriptsprache. Das Besondere ist die hohe Flexibilität, die sich vor allem darin ausdrückt, dass es möglich ist verschiedene Arten der Programmierung anzuwenden: objektorientiert, prozedural und funktional. JavaScript entpuppt sich damit als Alleskönner. Das macht JavaScript aber leider nicht besonders einfach zu verstehen.

JavaScript kennt keine Sprachkonstrukte für Klassen, Interfaces und Vererbung, wie zum Beispiel Java. Alternativ bietet JavaScript Objekte (Instanzen) mit einem mächtigen Prototyp-Konzept. Sie sind ein flexibles Werkzeug, mit dem sich Vererbung nachbilden lässt.

Um komplexere Applikationen mit JavaScript bauen zu können, muss man sich intensiver mit der Sprache beschäftigen und mehr verstehen als die Deklaration von Variablen und die grundlegenden Kontrollstrukturen.

Die folgenden Abschnitte stellen einige der interessantesten Konzepte von JavaScript vor, um für die Implementierungen von Single-Page-Web-Apps in den nächsten Kapiteln gerüstet zu sein. Dabei werden wir auf einige Fehlerquellen und Fallstricke stoßen, auf die man bei der täglichen Arbeit immer wieder trifft.

Die meisten JavaScript-Beispiele können leicht in der Konsole von Google Chrome oder Firefox ausprobiert werden. Die Taste F12 öffnet die Entwickler-Tools und unter dem Reiter Konsole lassen sich direkt JavaScript-Befehle ausführen.

Bild 2.1: Die geöffnete Konsole in Google Chrome.

2.3Missverständnisse bei JavaScript


JavaScript hatte lange Zeit einen schlechten Ruf innerhalb der Entwicklergemeinde. In vielen Projekten wurde es ausschließlich eingesetzt, wenn die Aufgabe nicht anders zu lösen war. Das schlechte Bauchgefühl ist durchaus begründet, wie ein kleines Beispiel deutlich macht:

//Plus ist für Strings definiert. Die Ziffer wird konvertiert:

> console.log("42" + 7);

"427"

//Führt zur Konversion des 1. Operanden in eine Zahl:

> console.log("42" – 7);

35

Das Verhalten ist nicht konsistent. Der Plus-Operator ist für Zeichenketten sinnvoll einsetzbar: Die beiden Operanden werden als Strings verkettet. Der Minus-Operator verhält sich anders, da er für Zeichenketten nicht existiert. Der linke Operand wird in eine Zahl konvertiert und eine Subtraktion ausgeführt. Beides ist für sich genommen logisch, aber in der Kombination verwirrend.

Leider steht dieses Beispiel stellvertretend für viele weitere sonderbare Konstellationen, von denen einige in diesem Kapitel vorgestellt werden. Trotzdem ist JavaScript insgesamt besser als sein Ruf. Die nächsten Punkte stellen einige der typischen Missverständnisse bei JavaScript in ein klareres Licht.

2.3.1JavaScript kennt keine Datentypen


Das ist eine der bekanntesten Fehleinschätzungen, die immer wieder gegen die Sprache ins Feld geführt werden. Die Behauptung ist schlichtweg falsch. Schon die Existenz des typeof-Operators sollte stutzig machen. Der Operator liefert den Datentyp eines Wertes oder einer Variable als Zeichenkette:

var bool1 = true;

console.log( typeof bool1 );

"boolean"

Dabei unterscheidet der typeof-Operator vier grundlegende Fälle:

]Für undefinierte Werte oder Variablen ist die Rückgabe: undefined.

]Die drei primitiven Datentypen liefern boolean, number oder string.

]Wendet man typeof auf eine Funktion an, erhält man function.

]Für alle anderen Elemente liefert die Funktion object. Dazu gehören ebenfalls Arrays und der Wert null für nicht gesetzte Referenzen.

Die folgende Tabelle listet einige typische Beispiele mit den entsprechenden Rückgabewerten auf:

Typ des OperandenBeispielRückgabe
Undefinierttypeof newvar;"undefined"
Booleantypeof true;"boolean"
Numbertypeof 42;"number"
 typeof 9.81; 
 typeof 2.817e-15; 
Stringtypeof "Hallo";"string"
Funktionentypeof function add2() {};"function"
 typeof Math.sin; 
Sonstige Objektetypeof new String("Hallo");"object"
 typeof new Boolean(true); 
 typeof {}; 
 typeof { x: 1, y: 2 }; 
Nulltypeof null;"object"
Arraytypeof [ 1, 2, 3 ];"object"

Einige Besonderheiten springen ins Auge: Funktionen haben offenbar eine große Bedeutung und stehen auf derselben Ebene wie Objekte. Funktionen werden wir intensiv weiter unten in einem separaten Abschnitt untersuchen.

Intuitiv würde man für den Wert null die Rückgabe undefined anstatt object erwarten. Verwirrend ist die Unterscheidung zwischen den beiden Resultaten für den primitiven Typ string und das Objekt String, das über den Konstruktor (new) erzeugt wurde. Intuitiv würde man für beide dasselbe Ergebnis erwarten.

Primitive Datentypen und Objekte

Die Unterscheidung zieht sich nicht in allen Fällen konsistent durch. So bietet das String-Objekt das Attribut length, das die Länge der Zeichenkette liefert. Erstaunlich ist, dass die Methode analog auf den primitiven String anwendbar ist. Offenbar wandelt JavaScript den primitiven Datentyp automatisch in ein Objekt um. Man erhält den Eindruck, das Zusammenspiel der Typen sei nicht vollständig konsistent:

variable2 = new String("Beispieltext");

alert(variable2.length); // Ausgabe: 12

var variable = "Beispieltext";

alert(variable.length); // Ausgabe: 12

Wichtig ist in diesem Zusammenhang, dass Objekte als Referenz (»by reference«) an Funktionen übergeben werden. Eine Änderung am Objekt wirkt sich auf das übergebene Objekt aus und ist somit außerhalb der Funktion sichtbar. Primitive Typen werden als Wert (»by value«) übergeben. Änderungen sind nur im...

Blick ins Buch

Weitere E-Books zum Thema: Netzwerke - Clouds - Datenbanken

Sichere Netzwerkkommunikation

E-Book Sichere Netzwerkkommunikation
Grundlagen, Protokolle und Architekturen Format: PDF

Netzwerke werden in allen Bereichen der IT eingesetzt, und es gibt zahlreiche Technologien zur sicheren Netzwerkkommunikation. Doch welche der verfügbaren Techniken lassen sich kombinieren und in der…

Sichere Netzwerkkommunikation

E-Book Sichere Netzwerkkommunikation
Grundlagen, Protokolle und Architekturen Format: PDF

Netzwerke werden in allen Bereichen der IT eingesetzt, und es gibt zahlreiche Technologien zur sicheren Netzwerkkommunikation. Doch welche der verfügbaren Techniken lassen sich kombinieren und in der…

Sichere Netzwerkkommunikation

E-Book Sichere Netzwerkkommunikation
Grundlagen, Protokolle und Architekturen Format: PDF

Netzwerke werden in allen Bereichen der IT eingesetzt, und es gibt zahlreiche Technologien zur sicheren Netzwerkkommunikation. Doch welche der verfügbaren Techniken lassen sich kombinieren und in der…

Sichere Netzwerkkommunikation

E-Book Sichere Netzwerkkommunikation
Grundlagen, Protokolle und Architekturen Format: PDF

Netzwerke werden in allen Bereichen der IT eingesetzt, und es gibt zahlreiche Technologien zur sicheren Netzwerkkommunikation. Doch welche der verfügbaren Techniken lassen sich kombinieren und in der…

Microsoft ISA Server 2006

E-Book Microsoft ISA Server 2006
Leitfaden für Installation, Einrichtung und Wartung Format: PDF

Im Januar 2005 ist mein erstes Buch zum Thema ISA Server 2004 erschienen. Die Erstauflage war bereits nach wenigen Monaten ausverkauft, was offensichtlich bedeutet, dass der Bedarf nach Informationen…

Microsoft ISA Server 2006

E-Book Microsoft ISA Server 2006
Leitfaden für Installation, Einrichtung und Wartung Format: PDF

Im Januar 2005 ist mein erstes Buch zum Thema ISA Server 2004 erschienen. Die Erstauflage war bereits nach wenigen Monaten ausverkauft, was offensichtlich bedeutet, dass der Bedarf nach Informationen…

Veritas Storage Foundation®

E-Book Veritas Storage Foundation®
High End-Computing für UNIX, Design und Implementation von Hochverfügbarkeitslösungen mit VxVM und VCS Format: PDF

Hochkonzentrierter und praxisorientierter Kurs zur 'Veritas Storage Foundation': Storage Virtualisierung (Teil 1) erzeugt virtuelle Diskspeicher, die bei Kompatibilität zu ihren physischen…

Veritas Storage Foundation®

E-Book Veritas Storage Foundation®
High End-Computing für UNIX, Design und Implementation von Hochverfügbarkeitslösungen mit VxVM und VCS Format: PDF

Hochkonzentrierter und praxisorientierter Kurs zur 'Veritas Storage Foundation': Storage Virtualisierung (Teil 1) erzeugt virtuelle Diskspeicher, die bei Kompatibilität zu ihren physischen…

Veritas Storage Foundation®

E-Book Veritas Storage Foundation®
High End-Computing für UNIX, Design und Implementation von Hochverfügbarkeitslösungen mit VxVM und VCS Format: PDF

Hochkonzentrierter und praxisorientierter Kurs zur 'Veritas Storage Foundation': Storage Virtualisierung (Teil 1) erzeugt virtuelle Diskspeicher, die bei Kompatibilität zu ihren physischen…

Weitere Zeitschriften

ARCH+.

ARCH+.

ARCH+ ist eine unabhängige, konzeptuelle Zeitschrift für Architektur und Urbanismus. Der Name ist zugleich Programm: mehr als Architektur. Jedes vierteljährlich erscheinende Heft beleuchtet ...

aufstieg

aufstieg

Zeitschrift der NaturFreunde in Württemberg Die Natur ist unser Lebensraum: Ort für Erholung und Bewegung, zum Erleben und Forschen; sie ist ein schützenswertes Gut. Wir sind aktiv in der Natur ...

Das Grundeigentum

Das Grundeigentum

Das Grundeigentum - Zeitschrift für die gesamte Grundstücks-, Haus- und Wohnungswirtschaft. Für jeden, der sich gründlich und aktuell informieren will. Zu allen Fragen rund um die Immobilie. Mit ...

die horen

die horen

Zeitschrift für Literatur, Kunst und Kritik."...weil sie mit großer Aufmerksamkeit die internationale Literatur beobachtet und vorstellt; weil sie in der deutschen Literatur nicht nur das Neueste ...

F- 40

F- 40

Die Flugzeuge der Bundeswehr, Die F-40 Reihe behandelt das eingesetzte Fluggerät der Bundeswehr seit dem Aufbau von Luftwaffe, Heer und Marine. Jede Ausgabe befasst sich mit der genaue Entwicklungs- ...