![Erfolgreich JavaScript lernen Erfolgreich JavaScript lernen](/img/books/width167/3863241029_k.jpg)
Erfolgreich JavaScript lernen
von: Ralph Steyer
Addison-Wesley Verlag, 2012
ISBN: 9783863241025
Sprache: Deutsch
560 Seiten, Download: 7541 KB
Format: EPUB, PDF, auch als Online-Lesen
erfolgreich JavaScript lernen | 1 | ||
Ralph Steyer | 4 | ||
Impressum | 5 | ||
Auf einen Blick | 6 | ||
Vorwort | 6 | ||
Kapitel 1 – Einleitung | 6 | ||
Kapitel 2 – Grundlagen und erste Beispiele | 6 | ||
Kapitel 3 – Vorbereitende Basics | 6 | ||
Kapitel 4 – Die Versionen von JavaScript und die Einbindung in Webseiten | 6 | ||
Kapitel 5 – Elementare JavaScript-Grundstrukturen | 6 | ||
Kapitel 6 – Fehlervermeidung, Fehlersuche und Testverfahren | 6 | ||
Kapitel 7 – JavaScript und Objekte | 6 | ||
Kapitel 8 – Ausnahmebehandlung, Ereignisbehandlung und das event-Objekt | 6 | ||
Kapitel 9 – DHTML und Animationen | 6 | ||
Kapitel 10 – AJAX und das Web 2.0 | 6 | ||
Kapitel 11 – Schutzmaßnahmen und Optimierung | 6 | ||
Kapitel 12 – Zugriff auf Webformulare | 6 | ||
Kapitel 13 – Erweiterte JavaScript-Techniken | 6 | ||
Anhang A | 6 | ||
Stichwortverzeichnis | 6 | ||
Inhaltsverzeichnis | 8 | ||
Vorwort | 8 | ||
Kapitel 1 – Einleitung | 8 | ||
1.1 Über das Buch | 8 | ||
1.1.1 An wen sich das Buch wendet | 8 | ||
1.1.2 Wie dieses Buch organisiert ist | 8 | ||
1.1.3 Schreibkonventionen | 8 | ||
1.1.4 Was Sie in dem Buch lernen | 8 | ||
1.2 Was Sie unbedingt haben sollten | 8 | ||
1.2.1 Die Hardware | 8 | ||
1.2.2 Die Software | 8 | ||
1.3 Firefox als Zentrale der Webentwicklung | 8 | ||
1.3.1 Interessante Add-ons für Firefox | 8 | ||
1.4 Andere Browser zur Entwicklungszentrale aufbauen? | 8 | ||
1.4.1 Internet Explorer | 8 | ||
1.4.2 Chrome/Iron | 8 | ||
1.4.3 Opera | 8 | ||
1.5 Zusammenfassung | 8 | ||
Kapitel 2 – Grundlagen und erste Beispiele | 8 | ||
2.1 Erste JavaScript-Beispiele | 8 | ||
2.1.1 Ein einfaches Mitteilungsfenster | 8 | ||
2.1.2 Schreiben eines angepassten Aktualisierungsdatums | 8 | ||
2.1.3 Entgegennahme einer Benutzereingabe | 8 | ||
2.2 Die Besonderheit bei der Webprogrammierung | 8 | ||
2.2.1 Kompilierung versus Interpretation | 8 | ||
2.2.2 Unterschiedliche Plattformen und Interpretation | 8 | ||
2.3 Ein erster Überblick über wichtige Techniken der Webprogrammierung | 8 | ||
2.3.1 HTML & XHTML | 8 | ||
2.3.2 Skriptsprachen im Web | 8 | ||
2.3.3 Java | 8 | ||
2.3.4 ActiveX | 8 | ||
2.3.5 Style Sheets | 8 | ||
2.3.6 DHTML | 9 | ||
2.3.7 XML | 9 | ||
2.3.8 AJAX und das Web 2.0 | 9 | ||
2.3.9 Cookies | 9 | ||
2.3.10 Grafik und Multimedia | 9 | ||
2.4 Zusammenfassung | 9 | ||
Kapitel 3 – Vorbereitende Basics | 9 | ||
3.1 Der Aufbau von (X)HTML-Dateien | 9 | ||
3.1.1 Das Prinzip der Fehlertoleranz | 9 | ||
3.1.2 Steueranweisungen | 9 | ||
3.1.3 Attribute | 9 | ||
3.1.4 Strukturierung und Gestaltung mit HTML | 9 | ||
3.1.5 Das Grundgerüst einer Webseite | 9 | ||
3.1.6 Der Header | 9 | ||
3.1.7 Der Körper von Webseiten | 9 | ||
3.2 XML-Grundlagen | 9 | ||
3.2.1 XML-Elemente | 9 | ||
3.2.2 Die Syntax eines XML-Dokuments | 9 | ||
3.2.3 Gültige XML-Dokumente | 9 | ||
3.3 HTML versus XHTML | 9 | ||
3.4 Ein erster Blick auf das DOM-Konzept | 9 | ||
3.5 HTML5 und DOM5 | 9 | ||
3.5.1 Das neue Vokabular | 9 | ||
3.5.2 Das neue DOM5 und die MIME-Typen von HTML5 | 9 | ||
3.5.3 Das Namensraumkonzept von HTML5 | 9 | ||
3.5.4 Die erwartete Darstellung | 9 | ||
3.5.5 Der Browserkontext und die Kommunikation zwischen verschiedenen Kontexten | 9 | ||
3.5.6 HTML Microdata | 9 | ||
3.5.7 Web Workers | 9 | ||
3.5.8 Canvas-Objekte und die Einbindung von SVG | 9 | ||
3.6 Die Gültigkeit von Webseiten testen | 9 | ||
3.7 Grundlagen zu Style Sheets | 9 | ||
3.7.1 Die Verwendung von Style Sheets in einer Webseite | 9 | ||
3.7.2 Die konkrete Syntax von CSS-Deklarationen | 9 | ||
3.7.3 CSS3 | 9 | ||
3.8 Zusammenfassung | 9 | ||
Kapitel 4 – Die Versionen von JavaScript und die Einbindung in Webseiten | 10 | ||
4.1 Die Versionszyklen von JavaScript und ECMAScript | 10 | ||
4.2 JavaScript in Webseiten einbinden | 10 | ||
4.2.1 Verbindung 1 – die Notation eines Skript-Containers in der Webseite | 10 | ||
4.2.2 Verbindung 2 – die Verwendung von externen JavaScript-Dateien | 10 | ||
4.2.3 Verbindung 3 – die Inline-Referenz | 10 | ||
4.3 Der gemeinsame Namensraum | 10 | ||
4.4 Der | 10 | ||
4.5 Kann man testen, ob bei einem Browser JavaScript aktiviert ist? | 10 | ||
4.6 Kann man testen, welche JavaScript-Version von einem Browser unterstützt wird? | 10 | ||
4.7 Zusammenfassung | 10 | ||
Kapitel 5 – Elementare JavaScript-Grundstrukturen | 10 | ||
5.1 Token und Parser | 10 | ||
5.1.1 Token | 10 | ||
5.1.2 Parser | 10 | ||
5.2 Kommentare | 10 | ||
5.2.1 Mehrzeilige Kommentare in JavaScript | 10 | ||
5.2.2 Einzeilige Kommentare in JavaScript | 10 | ||
5.3 Schlüsselwörter in JavaScript | 10 | ||
5.4 Datentypen, Variablen und Literale | 10 | ||
5.4.1 Datentypen | 10 | ||
5.4.2 Literale und Steuerzeichen bei Zeichenketten | 10 | ||
5.4.3 Variablen anlegen | 10 | ||
5.4.4 Namensregeln für Variablen | 10 | ||
5.5 Anweisungen | 10 | ||
5.5.1 Ausdrücke | 10 | ||
5.5.2 Blöcke | 10 | ||
5.5.3 Operatoren und Operanden | 10 | ||
5.6 Kontrollstrukturen in JavaScript | 10 | ||
5.6.1 Die if-Bedingung | 10 | ||
5.6.2 Die switch-Fallunterscheidung | 10 | ||
5.6.3 Die while-Schleife | 10 | ||
5.6.4 Die do-while-Schleife | 10 | ||
5.6.5 Die for-Schleife | 10 | ||
5.6.6 Sprunganweisungen | 10 | ||
5.7 Datenfelder | 11 | ||
5.7.1 Ein Array erzeugen | 11 | ||
5.7.2 Zugriff auf Array-Elemente | 11 | ||
5.7.3 Mit Schleifen auf Array-Elemente zugreifen | 11 | ||
5.8 Funktionen, Prozeduren und Methoden | 11 | ||
5.8.1 Funktion, Prozedur, Methode | 11 | ||
5.8.2 Verwendung von vorgefertigten Funktionen | 11 | ||
5.8.3 Die Definition eigener Funktionen | 11 | ||
5.8.4 Der Aufruf einer Funktion | 11 | ||
5.8.5 Lokale Variablen in Funktionen | 11 | ||
5.8.6 Flexible Anzahl an Funktionsargumenten und das Token arguments | 11 | ||
5.8.7 Rekursive Funktionsaufrufe | 11 | ||
5.8.8 Funktionsreferenzen | 11 | ||
5.8.9 Benannte versus anonyme Funktionen | 11 | ||
5.8.10 Innere Funktionen – Closures | 11 | ||
5.8.11 Callbacks | 11 | ||
5.9 Aufruf einer JavaScript-Funktion per Eventhandler | 11 | ||
5.9.1 Was ist ein Ereignis? | 11 | ||
5.9.2 Ein Mechanismus zur Reaktion auf Ereignisse | 11 | ||
5.9.3 Verschiedene Ereignisse | 11 | ||
5.10 Zusammenfassung | 11 | ||
Kapitel 6 – Fehlervermeidung, Fehlersuche und Testverfahren | 11 | ||
Kapitel 7 – JavaScript und Objekte | 11 | ||
7.1 Was sind Objekte? | 11 | ||
7.1.1 Wie werden Methoden und Eigenschaften in JavaScript verwendet? | 11 | ||
7.1.2 Die grundsätzliche Definition der objektorientierten Programmierung | 11 | ||
7.2 Klassen, Instanzen & Vererbung | 11 | ||
7.2.1 Vererbung | 11 | ||
7.3 JavaScript-Objekte erzeugen | 11 | ||
7.3.1 Test auf die Existenz eines Objekts | 11 | ||
7.4 Klassenmethoden und Klasseneigenschaften verwenden | 11 | ||
7.4.1 Nutzen von Klassenelementen aus Math | 11 | ||
7.4.2 Objekte und Klassenelemente von Number | 11 | ||
7.5 Native Objekte in JavaScript | 12 | ||
7.5.1 Datenfelder bzw. Arrays | 12 | ||
7.5.2 Objekte vom Typ Boolean | 12 | ||
7.5.3 Datumsoperationen mit Date | 12 | ||
7.5.4 Stringoperationen | 12 | ||
7.5.5 Reguläre Ausdrücke | 12 | ||
7.5.6 Objekte vom Typ Function | 12 | ||
7.5.7 Native Bildobjekte | 12 | ||
7.6 Das DOM – das Mysterium der JavaScript-Welt | 12 | ||
7.6.1 Was ist das DOM-Konzept? | 12 | ||
7.6.2 Grundsätzliches zum Weg durch das DOM | 12 | ||
7.7 Die verfügbaren DOM-Objekte | 12 | ||
7.7.1 Das Konzept der Objektfelder | 12 | ||
7.8 Generelle Zugriffsmöglichkeiten auf DOM-Objekte | 12 | ||
7.8.1 Der Zugriff über einen Namen – getElementsByName() | 12 | ||
7.8.2 Zugriff über eine ID – getElementById() | 12 | ||
7.8.3 Zugriff über den Elementnamen – getElementsByTagName() | 12 | ||
7.8.4 Zugriff über die Klasse | 12 | ||
7.8.5 Der kurze Dienstweg – this | 12 | ||
7.9 Zugriff auf Inhalte von Elementen in der Webseite | 12 | ||
7.9.1 Zugriff auf Textinhalte | 12 | ||
7.9.2 Zugriff auf Formularinhalte | 12 | ||
7.9.3 Zugriff auf klassische HTML-Attribute | 12 | ||
7.10 Das Objekt document | 12 | ||
7.10.1 Die Eigenschaften | 12 | ||
7.10.2 Die Methoden von document | 12 | ||
7.11 Das node-Objekt | 12 | ||
7.11.1 Knotenarten | 12 | ||
7.11.2 Die Eigenschaften eines node-Objekts | 12 | ||
7.11.3 Die Methoden eines node-Objekts | 12 | ||
7.12 Fenstertechniken | 12 | ||
7.12.1 Der Toplevel und die reservierten Fensternamen | 12 | ||
7.12.2 Die Eigenschaften und Methoden des window-Objekts | 12 | ||
7.12.3 Anwendungen mit Fenstern | 12 | ||
7.12.4 Frames, IFrames und das Objektfeld frames | 12 | ||
7.13 Browserauswertung | 12 | ||
7.14 Das Objekt navigator | 12 | ||
7.15 Die Browserkennung | 13 | ||
7.15.1 Suche nach spezifischen Informationen in navigator.appName, navigator.appVersion und navigator.userAgent | 13 | ||
7.15.2 Indirekte Identifizierung eines Browsers unter Ausnutzung eines Mangels | 13 | ||
7.15.3 Die Spracheinstellung eines Browsers | 13 | ||
7.15.4 Eine Browserweiche erstellen | 13 | ||
7.16 Zugriff auf Bildschirminformationen eines Besuchers | 13 | ||
7.17 Zusammenfassung | 13 | ||
Kapitel 8 – Ausnahmebehandlung, Ereignisbehandlung und das event-Objekt | 13 | ||
8.1 Eventhandler in JavaScript | 13 | ||
8.1.1 (X)HTML- versus JavaScript-Eventhandler | 13 | ||
8.1.2 Verschiedene Ereignisse | 13 | ||
8.2 Grundlagen zu Ereignisobjekten | 13 | ||
8.2.1 Blubbern | 13 | ||
8.2.2 Die Informationen im Ereignisobjekt | 13 | ||
8.3 Das Ereignisobjekt verwenden | 13 | ||
8.3.1 Das Netscape-Ereignismodell | 13 | ||
8.3.2 Das Microsoft-Ereignismodell | 13 | ||
8.4 Ausnahmebehandlung | 13 | ||
8.4.1 Was ist eine Ausnahme? | 13 | ||
8.4.2 Wozu ein Ausnahmekonzept? | 13 | ||
8.4.3 Die verschiedene Ausnahmetypen | 13 | ||
8.4.4 Das Auffangen einer Ausnahme | 13 | ||
8.4.5 Mehrere Ausnahmen behandeln | 13 | ||
8.5 Eine universelle Ereignisbehandlung mit Ausnahmebehandlung | 13 | ||
8.6 Globale Ereignisbehandlung | 13 | ||
8.6.1 Eine universelle Funktion zur Registrierung eines Listener | 13 | ||
8.7 Zusammenfassung | 13 | ||
Kapitel 9 – DHTML und Animationen | 13 | ||
9.1 DHTML und Animation mit reinem JavaScript | 13 | ||
9.2 DHTML und Animation mit reinem CSS | 13 | ||
9.3 Verbinden von JavaScript und Style Sheets | 13 | ||
9.3.1 Mit style eine Webseite formatieren | 13 | ||
9.3.2 Eine Animation mit style | 13 | ||
9.3.3 Ein Farbwähler für die Hintergrundfarbe | 13 | ||
9.3.4 Eine Animation durch Manipulation von Grafiken (style-Version) | 14 | ||
9.3.5 Eine Interaktionskomponente dynamisieren | 14 | ||
9.4 Verändern des Inhalts der Webseite | 14 | ||
9.4.1 Ein aufklappbares Navigationsmenü | 14 | ||
9.4.2 Eine Menüleiste | 14 | ||
9.5 Zusammenfassung | 14 | ||
Kapitel 10 – AJAX und das Web 2.0 | 14 | ||
10.1 Die Beziehung zwischen Webserver und Browser | 14 | ||
10.1.1 Der grundsätzliche Ablauf einer Kommunikation zwischen Herr und Diener – HTTP | 14 | ||
10.1.2 Verbindungsorientierte Datenkommunikation | 14 | ||
10.1.3 Zustandslose Datenkommunikation | 14 | ||
10.1.4 Die HTTP-Details und die HTTP-Header | 14 | ||
10.1.5 Der HTTP-Request | 14 | ||
10.1.6 Der HTTP-Response | 14 | ||
10.1.7 Die Methoden der Datenübertragung per HTTP | 14 | ||
10.2 Die Meldungen eines Webservers | 14 | ||
10.3 Das Datenformat | 14 | ||
10.3.1 Klartextdatenformate | 14 | ||
10.4 Was ist AJAX und was bezeichnet Web 2.0? | 14 | ||
10.4.1 AJAX als technische Basis des Web 2.0 | 14 | ||
10.5 Der grundsätzliche Ablauf einer AJAX-Anfrage und das XMLHttpRequest-Objekt (XHR) | 14 | ||
10.5.1 Der grundsätzliche Ablauf | 14 | ||
10.5.2 Ein XMLHttpRequest-Objekt erzeugen | 14 | ||
10.6 Die Anforderung von Daten | 14 | ||
10.6.1 Die Methoden eines XHR-Objekts | 14 | ||
10.6.2 Die Eigenschaften eines XMLHttpRequest-Objekts | 14 | ||
10.7 Verschiedene Datentypen vom Server per AJAX nachfordern | 14 | ||
10.7.1 Eine reine Textdatei mit AJAX nachfordern | 14 | ||
10.7.2 Übergabe von Werten an den Webserver | 14 | ||
10.7.3 Nachfordern von XML-Daten | 14 | ||
10.7.4 JSON-Daten anfordern und verarbeiten | 15 | ||
10.8 Statusinformationen für den Anwender | 15 | ||
10.8.1 Die Auswertung des Statuscodes des Servers | 15 | ||
10.9 Zusammenfassung | 15 | ||
Kapitel 11 – Schutzmaßnahmen und Optimierung | 15 | ||
11.1 Optimierung von JavaScripts | 15 | ||
11.1.1 Interpreterprinzip = langsam – JIT = schnell | 15 | ||
11.1.2 Rezepte | 15 | ||
11.2 Schutzmaßnahmen | 15 | ||
11.3 Zusammenfassung | 15 | ||
Kapitel 12 – Zugriff auf Webformulare | 15 | ||
12.1 Das Formularobjekt | 15 | ||
12.1.1 Die Eigenschaften eines Formularobjekts | 15 | ||
12.1.2 Die Methoden | 15 | ||
12.1.3 Die Elemente in dem Webformular | 15 | ||
12.1.4 Das Objektfeld options | 15 | ||
12.2 Zugriff auf ein Webformular per JavaScript | 15 | ||
12.2.1 Zugriff auf den Wert eines Formularelements | 15 | ||
12.3 Verschicken und Zurücksetzen von Formulardaten | 15 | ||
12.3.1 Verschicken von Formulardaten mit AJAX | 15 | ||
12.4 Plausibilisieren von Formularen | 15 | ||
12.4.1 Abbruch von Aktionen | 15 | ||
12.4.2 Fehlerreaktion | 15 | ||
12.4.3 Ein Beispiel mit Plausibilisierung | 15 | ||
12.5 Zusammenfassung | 15 | ||
Kapitel 13 – Erweiterte JavaScript-Techniken | 15 | ||
13.1 Erweiterte Objekttechniken | 15 | ||
13.1.1 Was zeichnet in JavaScript eine Methode gegenüber einer normalen Funktion aus? | 15 | ||
13.1.2 Ein einzelnes Objekt erweitern | 15 | ||
13.1.3 Was ist Prototyping? | 15 | ||
13.1.4 Erstellen von Konstruktormethoden | 15 | ||
13.1.5 Vererbung mit Prototyping simulieren | 15 | ||
13.1.6 Datenkapselung | 15 | ||
13.2 HTML5 – Multithreading über Web Workers | 15 | ||
13.3 HTML5 – Zeichnen mit Canvas-Objekten | 16 | ||
13.3.1 Das Canvas-Element | 16 | ||
13.3.2 Der Grafikkontext | 16 | ||
13.3.3 Farben und Farbverläufe | 16 | ||
13.3.4 Rechtecke | 16 | ||
13.3.5 Bilder und Bildausschnitte | 16 | ||
13.3.6 Pfade ziehen – komplexe Formen | 16 | ||
13.3.7 Texte zeichnen | 16 | ||
13.3.8 Pattern und Schatten | 16 | ||
13.3.9 Den Zustand eines Canvas speichern und restaurieren | 16 | ||
13.3.10 Transformationen | 16 | ||
13.3.11 Kompositionen und Clipping | 16 | ||
13.3.12 Animationen mit Canvas-Objekten | 16 | ||
13.4 Geodating mit HTML5 und mehr | 16 | ||
13.4.1 Die gemeinsame Basis | 16 | ||
13.4.2 Das Google Maps API | 16 | ||
13.4.3 Die Geolokalisierung mit HTML5 | 16 | ||
13.5 Daten im Browser speichern mit HTML5 und der Technik des Local Data Storage bzw. Session Data torage | 16 | ||
13.5.1 Offline Web-Applikationen mit dem Application Cache | 16 | ||
13.5.2 Die Objekte localStorage und sessionStorage sowie deren Methoden und Eigenschaft | 16 | ||
13.6 Zusammenfassung | 16 | ||
Anhang | 16 | ||
Stichwortverzeichnis | 16 | ||
Inhalt | 18 | ||
Vorwort | 18 | ||
Kapitel 1 – Einleitung | 20 | ||
1.1 Über das Buch | 21 | ||
1.1.1 An wen sich das Buch wendet | 21 | ||
1.1.2 Wie dieses Buch organisiert ist | 23 | ||
1.1.3 Schreibkonventionen | 23 | ||
1.1.4 Was Sie in dem Buch lernen | 24 | ||
1.2 Was Sie unbedingt haben sollten | 26 | ||
1.2.1 Die Hardware | 26 | ||
1.2.2 Die Software | 26 | ||
1.3 Firefox als Zentrale der Webentwicklung | 33 | ||
1.3.1 Interessante Add-ons für Firefox | 34 | ||
1.4 Andere Browser zur Entwicklungszentrale aufbauen? | 35 | ||
1.4.1 Internet Explorer | 35 | ||
1.4.2 Chrome/Iron | 35 | ||
1.4.3 Opera | 36 | ||
1.5 Zusammenfassung | 36 | ||
Kapitel 2 – Grundlagen und erste Beispiele | 38 | ||
2.1 Erste JavaScript-Beispiele | 38 | ||
2.1.1 Ein einfaches Mitteilungsfenster | 38 | ||
2.1.2 Schreiben eines angepassten Aktualisierungsdatums | 41 | ||
2.1.3 Entgegennahme einer Benutzereingabe | 42 | ||
2.2 Die Besonderheit bei der Webprogrammierung | 43 | ||
2.2.1 Kompilierung versus Interpretation | 43 | ||
2.2.2 Unterschiedliche Plattformen und Interpretation | 44 | ||
2.3 Ein erster Überblick über wichtige Techniken der Webprogrammierung | 45 | ||
2.3.1 HTML & XHTML | 46 | ||
2.3.2 Skriptsprachen im Web | 46 | ||
2.3.3 Java | 48 | ||
2.3.4 ActiveX | 49 | ||
2.3.5 Style Sheets | 49 | ||
2.3.6 DHTML | 50 | ||
2.3.7 XML | 51 | ||
2.3.8 AJAX und das Web 2.0 | 51 | ||
2.3.9 Cookies | 52 | ||
2.3.10 Grafik und Multimedia | 53 | ||
2.4 Zusammenfassung | 53 | ||
Kapitel 3 – Vorbereitende Basics | 54 | ||
3.1 Der Aufbau von (X)HTML-Dateien | 55 | ||
3.1.1 Das Prinzip der Fehlertoleranz | 55 | ||
3.1.2 Steueranweisungen | 58 | ||
3.1.3 Attribute | 59 | ||
3.1.4 Strukturierung und Gestaltung mit HTML | 60 | ||
3.1.5 Das Grundgerüst einer Webseite | 61 | ||
3.1.6 Der Header | 62 | ||
3.1.7 Der Körper von Webseiten | 64 | ||
3.2 XML-Grundlagen | 64 | ||
3.2.1 XML-Elemente | 65 | ||
3.2.2 Die Syntax eines XML-Dokuments | 66 | ||
3.2.3 Gültige XML-Dokumente | 67 | ||
3.3 HTML versus XHTML | 68 | ||
3.4 Ein erster Blick auf das DOM-Konzept | 70 | ||
3.5 HTML5 und DOM5 | 71 | ||
3.5.1 Das neue Vokabular | 73 | ||
3.5.2 Das neue DOM5 und die MIME-Typen von HTML5 | 93 | ||
3.5.3 Das Namensraumkonzept von HTML5 | 94 | ||
3.5.4 Die erwartete Darstellung | 94 | ||
3.5.5 Der Browserkontext und die Kommunikation zwischen verschiedenen Kontexten | 94 | ||
3.5.6 HTML Microdata | 95 | ||
3.5.7 Web Workers | 95 | ||
3.5.8 Canvas-Objekte und die Einbindung von SVG | 96 | ||
3.6 Die Gültigkeit von Webseiten testen | 97 | ||
3.7 Grundlagen zu Style Sheets | 98 | ||
3.7.1 Die Verwendung von Style Sheets in einer Webseite | 98 | ||
3.7.2 Die konkrete Syntax von CSS-Deklarationen | 100 | ||
3.7.3 CSS3 | 100 | ||
3.8 Zusammenfassung | 105 | ||
Kapitel 4 – Die Versionen von JavaScript und die Einbindung in Webseiten | 106 | ||
4.1 Die Versionszyklen von JavaScript und ECMAScript | 106 | ||
4.2 JavaScript in Webseiten einbinden | 108 | ||
4.2.1 Verbindung 1 – die Notation eines Skript-Containers in der Webseite | 109 | ||
4.2.2 Verbindung 2 – die Verwendung von externen JavaScript-Dateien | 111 | ||
4.2.3 Verbindung 3 – die Inline-Referenz | 113 | ||
4.3 Der gemeinsame Namensraum | 114 | ||
4.4 Der | 114 | ||
4.5 Kann man testen, ob bei einem Browser JavaScript aktiviert ist? | 114 | ||
4.6 Kann man testen, welche JavaScript-Version von einem Browser unterstützt wird? | 117 | ||
4.7 Zusammenfassung | 118 | ||
Kapitel 5 – Elementare JavaScript-Grundstrukturen | 120 | ||
5.1 Token und Parser | 121 | ||
5.1.1 Token | 121 | ||
5.1.2 Parser | 121 | ||
5.2 Kommentare | 121 | ||
5.2.1 Mehrzeilige Kommentare in JavaScript | 122 | ||
5.2.2 Einzeilige Kommentare in JavaScript | 122 | ||
5.3 Schlüsselwörter in JavaScript | 122 | ||
5.4 Datentypen, Variablen und Literale | 124 | ||
5.4.1 Datentypen | 124 | ||
5.4.2 Literale und Steuerzeichen bei Zeichenketten | 127 | ||
5.4.3 Variablen anlegen | 129 | ||
5.4.4 Namensregeln für Variablen | 131 | ||
5.5 Anweisungen | 132 | ||
5.5.1 Ausdrücke | 132 | ||
5.5.2 Blöcke | 133 | ||
5.5.3 Operatoren und Operanden | 133 | ||
5.6 Kontrollstrukturen in JavaScript | 148 | ||
5.6.1 Die if-Bedingung | 149 | ||
5.6.2 Die switch-Fallunterscheidung | 150 | ||
5.6.3 Die while-Schleife | 154 | ||
5.6.4 Die do-while-Schleife | 156 | ||
5.6.5 Die for-Schleife | 157 | ||
5.6.6 Sprunganweisungen | 158 | ||
5.7 Datenfelder | 161 | ||
5.7.1 Ein Array erzeugen | 161 | ||
5.7.2 Zugriff auf Array-Elemente | 163 | ||
5.7.3 Mit Schleifen auf Array-Elemente zugreifen | 166 | ||
5.8 Funktionen, Prozeduren und Methoden | 169 | ||
5.8.1 Funktion, Prozedur, Methode | 170 | ||
5.8.2 Verwendung von vorgefertigten Funktionen | 170 | ||
5.8.3 Die Definition eigener Funktionen | 174 | ||
5.8.4 Der Aufruf einer Funktion | 175 | ||
5.8.5 Lokale Variablen in Funktionen | 179 | ||
5.8.6 Flexible Anzahl an Funktionsargumenten und das Token arguments | 182 | ||
5.8.7 Rekursive Funktionsaufrufe | 187 | ||
5.8.8 Funktionsreferenzen | 188 | ||
5.8.9 Benannte versus anonyme Funktionen | 190 | ||
5.8.10 Innere Funktionen – Closures | 191 | ||
5.8.11 Callbacks | 193 | ||
5.9 Aufruf einer JavaScript-Funktion per Eventhandler | 195 | ||
5.9.1 Was ist ein Ereignis? | 195 | ||
5.9.2 Ein Mechanismus zur Reaktion auf Ereignisse | 196 | ||
5.9.3 Verschiedene Ereignisse | 197 | ||
5.10 Zusammenfassung | 206 | ||
Kapitel 6 – Fehlervermeidung, Fehlersuche und Testverfahren | 208 | ||
Kapitel 7 – JavaScript und Objekte | 210 | ||
7.1 Was sind Objekte? | 210 | ||
7.1.1 Wie werden Methoden und Eigenschaften in JavaScript verwendet? | 211 | ||
7.1.2 Die grundsätzliche Definition der objektorientierten Programmierung | 211 | ||
7.2 Klassen, Instanzen & Vererbung | 212 | ||
7.2.1 Vererbung | 212 | ||
7.3 JavaScript-Objekte erzeugen | 213 | ||
7.3.1 Test auf die Existenz eines Objekts | 216 | ||
7.4 Klassenmethoden und Klasseneigenschaften verwenden | 216 | ||
7.4.1 Nutzen von Klassenelementen aus Math | 217 | ||
7.4.2 Objekte und Klassenelemente von Number | 219 | ||
7.5 Native Objekte in JavaScript | 221 | ||
7.5.1 Datenfelder bzw. Arrays | 222 | ||
7.5.2 Objekte vom Typ Boolean | 227 | ||
7.5.3 Datumsoperationen mit Date | 227 | ||
7.5.4 Stringoperationen | 236 | ||
7.5.5 Reguläre Ausdrücke | 240 | ||
7.5.6 Objekte vom Typ Function | 246 | ||
7.5.7 Native Bildobjekte | 247 | ||
7.6 Das DOM – das Mysterium der JavaScript-Welt | 247 | ||
7.6.1 Was ist das DOM-Konzept? | 247 | ||
7.6.2 Grundsätzliches zum Weg durch das DOM | 248 | ||
7.7 Die verfügbaren DOM-Objekte | 251 | ||
7.7.1 Das Konzept der Objektfelder | 253 | ||
7.8 Generelle Zugriffsmöglichkeiten auf DOM-Objekte | 254 | ||
7.8.1 Der Zugriff über einen Namen – getElementsByName() | 254 | ||
7.8.2 Zugriff über eine ID – getElementById() | 256 | ||
7.8.3 Zugriff über den Elementnamen – getElementsByTagName() | 257 | ||
7.8.4 Zugriff über die Klasse | 258 | ||
7.8.5 Der kurze Dienstweg – this | 258 | ||
7.9 Zugriff auf Inhalte von Elementen in der Webseite | 260 | ||
7.9.1 Zugriff auf Textinhalte | 260 | ||
7.9.2 Zugriff auf Formularinhalte | 261 | ||
7.9.3 Zugriff auf klassische HTML-Attribute | 261 | ||
7.10 Das Objekt document | 264 | ||
7.10.1 Die Eigenschaften | 264 | ||
7.10.2 Die Methoden von document | 269 | ||
7.11 Das node-Objekt | 274 | ||
7.11.1 Knotenarten | 274 | ||
7.11.2 Die Eigenschaften eines node-Objekts | 276 | ||
7.11.3 Die Methoden eines node-Objekts | 281 | ||
7.12 Fenstertechniken | 285 | ||
7.12.1 Der Toplevel und die reservierten Fensternamen | 286 | ||
7.12.2 Die Eigenschaften und Methoden des window-Objekts | 286 | ||
7.12.3 Anwendungen mit Fenstern | 291 | ||
7.12.4 Frames, IFrames und das Objektfeld frames | 310 | ||
7.13 Browserauswertung | 318 | ||
7.14 Das Objekt navigator | 318 | ||
7.15 Die Browserkennung | 319 | ||
7.15.1 Suche nach spezifischen Informationen in navigator.appName, navigator.appVersion und navigator.userAgent | 320 | ||
7.15.2 Indirekte Identifizierung eines Browsers unter Ausnutzung eines Mangels | 321 | ||
7.15.3 Die Spracheinstellung eines Browsers | 322 | ||
7.15.4 Eine Browserweiche erstellen | 322 | ||
7.16 Zugriff auf Bildschirminformationen eines Besuchers | 323 | ||
7.17 Zusammenfassung | 326 | ||
Kapitel 8 – Ausnahmebehandlung, Ereignisbehandlung und das event-Objekt | 328 | ||
8.1 Eventhandler in JavaScript | 329 | ||
8.1.1 (X)HTML- versus JavaScript-Eventhandler | 329 | ||
8.1.2 Verschiedene Ereignisse | 331 | ||
8.2 Grundlagen zu Ereignisobjekten | 333 | ||
8.2.1 Blubbern | 333 | ||
8.2.2 Die Informationen im Ereignisobjekt | 334 | ||
8.3 Das Ereignisobjekt verwenden | 334 | ||
8.3.1 Das Netscape-Ereignismodell | 335 | ||
8.3.2 Das Microsoft-Ereignismodell | 340 | ||
8.4 Ausnahmebehandlung | 342 | ||
8.4.1 Was ist eine Ausnahme? | 343 | ||
8.4.2 Wozu ein Ausnahmekonzept? | 344 | ||
8.4.3 Die verschiedene Ausnahmetypen | 346 | ||
8.4.4 Das Auffangen einer Ausnahme | 346 | ||
8.4.5 Mehrere Ausnahmen behandeln | 349 | ||
8.5 Eine universelle Ereignisbehandlung mit Ausnahmebehandlung | 350 | ||
8.6 Globale Ereignisbehandlung | 352 | ||
8.6.1 Eine universelle Funktion zur Registrierung eines Listener | 354 | ||
8.7 Zusammenfassung | 356 | ||
Kapitel 9 – DHTML und Animationen | 358 | ||
9.1 DHTML und Animation mit reinem JavaScript | 358 | ||
9.2 DHTML und Animation mit reinem CSS | 359 | ||
9.3 Verbinden von JavaScript und Style Sheets | 359 | ||
9.3.1 Mit style eine Webseite formatieren | 360 | ||
9.3.2 Eine Animation mit style | 362 | ||
9.3.3 Ein Farbwähler für die Hintergrundfarbe | 363 | ||
9.3.4 Eine Animation durch Manipulation von Grafiken (style-Version) | 368 | ||
9.3.5 Eine Interaktionskomponente dynamisieren | 369 | ||
9.4 Verändern des Inhalts der Webseite | 371 | ||
9.4.1 Ein aufklappbares Navigationsmenü | 372 | ||
9.4.2 Eine Menüleiste | 376 | ||
9.5 Zusammenfassung | 381 | ||
Kapitel 10 – AJAX und das Web 2.0 | 382 | ||
10.1 Die Beziehung zwischen Webserver und Browser | 383 | ||
10.1.1 Der grundsätzliche Ablauf einer Kommunikation zwischen Herr und Diener – HTTP | 383 | ||
10.1.2 Verbindungsorientierte Datenkommunikation | 385 | ||
10.1.3 Zustandslose Datenkommunikation | 385 | ||
10.1.4 Die HTTP-Details und die HTTP-Header | 385 | ||
10.1.5 Der HTTP-Request | 386 | ||
10.1.6 Der HTTP-Response | 387 | ||
10.1.7 Die Methoden der Datenübertragung per HTTP | 387 | ||
10.2 Die Meldungen eines Webservers | 389 | ||
10.3 Das Datenformat | 390 | ||
10.3.1 Klartextdatenformate | 391 | ||
10.4 Was ist AJAX und was bezeichnet Web 2.0? | 393 | ||
10.4.1 AJAX als technische Basis des Web 2.0 | 393 | ||
10.5 Der grundsätzliche Ablauf einer AJAX-Anfrage und das XMLHttpRequest-Objekt (XHR) | 395 | ||
10.5.1 Der grundsätzliche Ablauf | 395 | ||
10.5.2 Ein XMLHttpRequest-Objekt erzeugen | 396 | ||
10.6 Die Anforderung von Daten | 399 | ||
10.6.1 Die Methoden eines XHR-Objekts | 399 | ||
10.6.2 Die Eigenschaften eines XMLHttpRequest-Objekts | 401 | ||
10.7 Verschiedene Datentypen vom Server per AJAX nachfordern | 402 | ||
10.7.1 Eine reine Textdatei mit AJAX nachfordern | 403 | ||
10.7.2 Übergabe von Werten an den Webserver | 409 | ||
10.7.3 Nachfordern von XML-Daten | 412 | ||
10.7.4 JSON-Daten anfordern und verarbeiten | 418 | ||
10.8 Statusinformationen für den Anwender | 421 | ||
10.8.1 Die Auswertung des Statuscodes des Servers | 421 | ||
10.9 Zusammenfassung | 422 | ||
Kapitel 11 – Schutzmaßnahmen und Optimierung | 424 | ||
11.1 Optimierung von JavaScripts | 424 | ||
11.1.1 Interpreterprinzip = langsam – JIT = schnell | 425 | ||
11.1.2 Rezepte | 426 | ||
11.2 Schutzmaßnahmen | 429 | ||
11.3 Zusammenfassung | 431 | ||
Kapitel 12 – Zugriff auf Webformulare | 432 | ||
12.1 Das Formularobjekt | 432 | ||
12.1.1 Die Eigenschaften eines Formularobjekts | 433 | ||
12.1.2 Die Methoden | 433 | ||
12.1.3 Die Elemente in dem Webformular | 434 | ||
12.1.4 Das Objektfeld options | 436 | ||
12.2 Zugriff auf ein Webformular per JavaScript | 436 | ||
12.2.1 Zugriff auf den Wert eines Formularelements | 437 | ||
12.3 Verschicken und Zurücksetzen von Formulardaten | 445 | ||
12.3.1 Verschicken von Formulardaten mit AJAX | 446 | ||
12.4 Plausibilisieren von Formularen | 448 | ||
12.4.1 Abbruch von Aktionen | 449 | ||
12.4.2 Fehlerreaktion | 450 | ||
12.4.3 Ein Beispiel mit Plausibilisierung | 450 | ||
12.5 Zusammenfassung | 453 | ||
Kapitel 13 – Erweiterte JavaScript-Techniken | 454 | ||
13.1 Erweiterte Objekttechniken | 454 | ||
13.1.1 Was zeichnet in JavaScript eine Methode gegenüber einer normalen Funktion aus? | 455 | ||
13.1.2 Ein einzelnes Objekt erweitern | 455 | ||
13.1.3 Was ist Prototyping? | 457 | ||
13.1.4 Erstellen von Konstruktormethoden | 465 | ||
13.1.5 Vererbung mit Prototyping simulieren | 469 | ||
13.1.6 Datenkapselung | 471 | ||
13.2 HTML5 – Multithreading über Web Workers | 474 | ||
13.3 HTML5 – Zeichnen mit Canvas-Objekten | 477 | ||
13.3.1 Das Canvas-Element | 478 | ||
13.3.2 Der Grafikkontext | 478 | ||
13.3.3 Farben und Farbverläufe | 480 | ||
13.3.4 Rechtecke | 489 | ||
13.3.5 Bilder und Bildausschnitte | 489 | ||
13.3.6 Pfade ziehen – komplexe Formen | 493 | ||
13.3.7 Texte zeichnen | 498 | ||
13.3.8 Pattern und Schatten | 499 | ||
13.3.9 Den Zustand eines Canvas speichern und restaurieren | 502 | ||
13.3.10 Transformationen | 504 | ||
13.3.11 Kompositionen und Clipping | 507 | ||
13.3.12 Animationen mit Canvas-Objekten | 508 | ||
13.4 Geodating mit HTML5 und mehr | 509 | ||
13.4.1 Die gemeinsame Basis | 511 | ||
13.4.2 Das Google Maps API | 512 | ||
13.4.3 Die Geolokalisierung mit HTML5 | 517 | ||
13.5 Daten im Browser speichern mit HTML5 und der Technik des Local Data Storage bzw. Session Data Storage | 520 | ||
13.5.1 Offline Web-Applikationen mit dem Application Cache | 521 | ||
13.5.2 Die Objekte localStorage und sessionStorage sowie deren Methoden und Eigenschaft | 522 | ||
13.6 Zusammenfassung | 530 | ||
Anhang | 532 | ||
Quellen | 532 | ||
Stichwortverzeichnis | 534 | ||
Symbole | 534 | ||
A | 534 | ||
B | 535 | ||
C | 535 | ||
D | 536 | ||
E | 537 | ||
F | 537 | ||
G | 537 | ||
H | 538 | ||
I | 539 | ||
J | 539 | ||
K | 539 | ||
L | 540 | ||
M | 540 | ||
N | 540 | ||
O | 541 | ||
P | 541 | ||
Q | 542 | ||
R | 542 | ||
S | 542 | ||
T | 543 | ||
U | 544 | ||
V | 544 | ||
W | 544 | ||
X | 545 | ||
Y | 545 | ||
Z | 545 | ||
Copyright | 546 |