Programmieren im Web 2.0

Ähnliche Dokumente
Web-Techniken Einführung in JavaScript

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung

O'REILLT Beijing Cambridge Famham Köln Paris Sebastopol Taipei Tokyo. JavaScript. Das umfassende Referenzwerk. David Flanagan

Medien und Webtechnologie

DOM Document Object Model

Proseminar Auszeichnungssprachen

Grundlagen Internet-Technologien INF3171

Softwaretechnik. Vorlesung 02: Spezifikation mit Typen. Peter Thiemann SS Universität Freiburg, Germany

JavaScript Basiskonzepte

JavaScript. von Patrick Schmidt

Multimediale Web-Anwendungen. JavaScript. Einführung. MWA JavaScript-Einführung Dr. E. Schön Sommersemester 2015 Folie 1.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

Themen. JavaScript. Datentypen, Kontrollstrukturen, Besonderheiten. Document Object Model - Übersicht

Scriptsprachen für dynamische Webauftritte

Überblick. Klassen Optionale Typen DOM. Optionale Parameter Klassen. Einführung. 2 Motivation 3 Werkzeuge 4 Demonstration 5 Dart

Vorteil. Einfach zu realisieren performant. Übersichtlich performant. "Vererbung" von Änderungen an vererbender Tabelle

Web-basierte Anwendungssysteme PHP-Einführung

Grundlagen Internet-Technologien. Ajax und Cookies&Sessions Version 1.00

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Virtuelle Realität und Simulation - Übung 2

Inhalt. Teil I: Der Sprachkern von JavaScript

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

33 Computer & Literatur Verlag GmbH

TypeScript JavaScript mit ohne Kopfschmerzen. Veit Weber 3. JUG Saxony Day Radebeul

Name Klasse Datum. Datentyp: Definition: Anführungszeichen

Integration von UIS-Webdiensten

HTML Scripting. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 06. Dezember 2017

13. Funktionale Konzepte in Java

ActiveX Scripting IE und DHTML (DOM): Architektur, Beispiele (Object Rexx)

Einstieg in die Informatik mit Java

Klaus Schmidt PHP 4. Computer & Literatur Verlag GmbH

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

JavaScript und das Document Object Model

Christian Wenz JavaScript Browserübergreifende Lösungen

Java Script. Optimierung auf Client-Systemen

Anwender- dokumentation

KOMPENDIUM Einführung Arbeitsbuch Nachschlagewerk

Die Klasse Vertiefung

Internet. HTML Programmierung Grundlagen HTML Programmierung für Fortgeschrittene CGI Programmierung PHP Programmierung Programmieren mit JavaScript

11. Funktionale Konzepte in Java

Welche Informatik-Kenntnisse bringen Sie mit?

JavaScript AJAX. Univ.-Prof. Dr.-Ing. Wolfgang Maass. Chair in Information and Service Systems Department of Law and Economics

Inhalt. Vorwort 13. Einleitung JavaScript-Grundlagen 17

Einstieg in die Informatik mit Java

Es gibt immer einen Schlüssel und einen zugehörigen Wert,

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Basisinformationstechnologie I

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

JavaScript und PHP-Merkhilfe

So bringen Sie Speed in Ihre Webpräsenz ADDISON-WESLEY. An imprint of Pearson Education

Klausur Grundlagen der Programmierung

JavaScript & Ajax Debugging. Marcel Bsufka

Web-Programmierung (WPR)

Alte Technik neu verpackt

Programmieren von Webinformationssystemen

2. Einführung: Was ist AJAX?

MIT3 Serverseitige Programmierung. Claudius Coenen

Programmieren I + II Regeln der Code-Formatierung

PHP Programmierung. Seminarunterlage. Version 1.07 vom

Grundlagen Internet-Technologien INF3171

Programmieren von Webinformationssystemen

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Funktionen nur wenn dann

Node.js Einführung Manuel Hart

2 Programmieren in Java I noch ohne Nachbearbeitung

Browserweichen mit JavaScript

JavaScript Die ersten Schritte. Holger Chudek Perfect Chain

III.1 Prinzipien der funktionalen Programmierung - 1 -

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

string: Beispiele: Test, test, `Seitentitel: ${document.title}`

Grundlagen der Web-Entwicklung INF3172

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Kompendium der Web-Programmierung

Computeranwendung und Programmierung (CuP)

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf:

AJAX und Ruby on Rails

TD Mobile Eine Einführung

Gliederung der Folien

Sicherheit in Rich Internet Applications

Stefan Koch. JavaScript. Einführung, Programmierung und Referenz inklusive Ajax. 4., komplett überarbeitete Auflage. dpunkt.verlag

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Web-Anwendungen, SS17 - Fragentypen

Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit

RO-Tutorien 3 / 6 / 12

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Programmieren I. Kapitel 5. Kontrollfluss

Übung zur Vorlesung Multimedia im Netz

Funktionen nur wenn dann

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

Martin Unold INFORMATIK. Geoinformatik und Vermessung

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

Google s JavaScript Engine: V8

Diagramme - Next Generation

Transkript:

Programmieren im Web 2.0

Inhaltsverzeichnis JavaScript Einführung DHTML als eine Grundlage Do s and Dont s

Inhaltsverzeichnis / 2 Ajax Einführung Technische Grundlagen Das XMLHttpRequest Objekt Beispielanwendung Do s and Dont s

JavaScript - Einführung Auf vielen Internetseiten werden Eingaben von Nutzern erwartet welche geprüft werden sollten. Beispiel: E-Mail Adressfeld

Simple und schnelle Lösung, aber: Was passiert wenn der Nutzer hab ich nicht einträgt? Lösung: Vorher nachschauen was denn der Nutzer reingeschrieben hat. Wie? JavaScript!

Die JavaScript Story Ursprünglich von Netscape entwickelt, zuerst unter den Namen Movat, dann um dem Java Trend zu folgen unter JavaScript Im Mai 1996 stellt Microsoft den ersten JScript fähigen Browser vor und fängt damit den Browserkrieg an.

Einer der Hauptgründe für die Anwendung von JavaScript in Browsern war der DHTML Boom. Heute findet sich JavaScript in fast jedem Graphischen Browser, allerdings mit einigen Inkompatibilitäten.

1998 wurde JavaScript unter dem Namen ECMAScript standardisiert und findet auch als Skriptsprache für diverse Anwendungen Verwendung... JavaScript wird sogar in Spielen eingesetzt da der Sprachkern klein ist.

Sprachbeschreibung JavaScript ist eine herkömmliche objektbasierte Sprache, da sie kein Klassenkonzept kennt, sondern Objekte als Prototypen nutzt. Die Syntax ist an Java angelehnt, weicht aber doch recht stark davon ab.

Datentypen/Standardobjekte: Object als allgemeiner Prototyp, von dem alle Objekte abgeleitet sind Function als Prototyp für Funktionen Array als Prototyp für Arrays String als Prototyp für Zeichenketten Boolean als Prototyp für Boolesche Variablen Number als Prototyp für Zahlen (64-Bit Gleitkommazahlen gemäß IEEE 754)

Math stellt Konstanten und Methoden für mathematische Operationen bereit. Math kann nicht als Konstruktor dienen. Date für Operationen mit Daten bzw. Zeitpunkten und Datumsformaten RegExp für reguläre Ausdrücke

Weitere Objekte können vorhanden sein, dies hängt aber vom Anwendungskontext ab, in einem Browser werden beispielsweise window und document vordefiniert, während es diese in Spielen nicht gibt.

Diese vordefinierten Prototypen entsprechen teilweise grundlegenden Datentypen. Zeichenketten haben den Typ String, numerische Werte den Typ Number und boolesche Werte den Typ Boolean. Des Weiteren gibt es die Typen null und undefined.

Alle anderen Werte sind Objekte und haben den Typ Object. Funktionen, Arrays, Datumsobjekte und reguläre Ausdrücke sind so gesehen spezielle Objekte. JavaScript ist nicht typisiert, d. h. der Datentyp einer Variablen kann sich während der Ausführung eines Scripts ändern!

Arbeiten mit Objekten Objekterstellung: MeinObjekt = new Object(); Beispiel: MeinArray = new Array( 23, 42 );

Methoden- und Eigenschaftszugriff: Objekt.Eigenschaft bzw. Objekt.Methode([Parameter]); Wertzuweisung bei Objekten: Objekt.Wert = 1; bzw. Objekt[ Wert ] = 1;

Kontrollstrukturen if( Bedingung ) { Anweisungen; } else { AndereAnweisungen; } while( Bedingung ) { Anweisungen; }

do { Anweisungen; } while( Bedingung ); for( [Start];[Bedingung];[Induktion]) { Anweisungen; }

switch (Variable) { case wert1 : Anweisungen; break; case wert2 : Anweisungen; break; default : Anweisungen; }

Funktionen function Foo( Param1, Param2 [...] ) { Anweisungen; [return Ausdruck;] } var Bar = function( Param1 [...] ) { Anweisungen; [return Ausdruck;] }

Funktionales Programmieren Da Funktionen in JavaScript vollwertige Objekte sind, sind sie Funktionen höherer Ordnung. Damit können sie auch als Parameter an andere Funktionen übergeben werden, sowie verzögert ausgewertet werden.

Vererbung über die Eigenschaft prototype Jede Funktion, d. h. jedes vom Function- Prototyp abgeleitete Objekt verfügt über eine Eigenschaft prototype. Diese übernimmt eine wichtige Aufgabe, wenn die Funktion als Konstruktor benutzt wird, um neue Objekte zu initialisieren.

Die Eigenschaft prototype definiert in diesem Falle gemeinsame Eigenschaften aller Objekte, die mit dem Konstruktor erstellt werden. (prototyp-basierte Vererbung) Auf diese Weise ermöglicht JavaScript mehrstufige Vererbung

Beispielcode für Vererbung

Einschub: DOM DOM: Document Object Model Das DOM beschreibt ein HTML oder XML Dokument als eine Struktur von Objekten. Damit kann man mit diesen Objekten arbeiten und das zugrunde liegende Dokument dynamisch verändern.

DHTML DHTML steht für Dynamic HTML und ist eine Sammlung diverser Techniken um Internetseiten interaktiver zu gestalten. (JavaScript, DOM, HTML...) Hauptmerkmal von DHTML ist die Manipulation der Objekte im DOM Baum um beispielsweise Elemente auszublenden oder ihren Inhalt zu verändern.

HTML vs. DHTML

Ajax Einführung Vorhandene Lösungen erfüllen ihren Zweck, haben aber Nachteile Mit DHTML konnten wir Vieles in den Client verlagern (Validierung, Seitenlogik) und Bandbreite sparen Für jede Änderung ist eine Interaktion des Benutzers notwendig

Was ist eigentlich Ajax? Asynchronous JavaScript and XML Einführung einer asynchronen Datenübertragung zwischen Client und Server. Mischung von Client- und Serverseitiger Logik um Anwendungen interaktiver zu gestalten. Umsetzung im Browser mit Hilfe von JavaScript.

Formate für die Übertragung XML, JSON Geeignete Formate für das Übertragen von Datensätzen. Plain Text, HTML Formate für Texte und Seiteninhalte.

XML XML ist eine weitverbreitete und standardisierte hierarchische Datensatzbeschreibungssprache XML-Daten sind selbstbeschreibend, leicht auswertbar.

JSON JavaScript Object Notation Ist eine objektbasierte Beschreibung der Datensätze und somit recht Programmiererfreundlich.

XML / JSON Schön zu lesen, aber etwas redselig Nicht ganz so schön zu lesen, aber kürzer

Technische Grundlagen Asynchrone Kommunikation (Auch ohne Benutzerinteraktion) JavaScript im Browser Meist ein Serverseitiges Gegenstück um Benutzeraktionen auszuführen.

Das XMLHttpRequest Objekt API für Datentransfer über HTTP Zentral für Ajax, sämtlicher asynchroner Datenverkehr wird über dieses Objekt getragen. Unterschiedlich implementiert (als ActiveX Objekt bei Microsoft...) aber weitgehend identische Funktionsweise.

Ursprünglich von Microsoft entwickelt (IE 5) als ActiveX Objekt Populär durch Google Maps und GMail In allen wichtigen Browsern implementiert, aber (noch) nicht durch das W3C standardisiert.

XMLHttpRequest als UML

Kleines AJAX Beispiel

AJAX Live Demo

Ein Framework: Prototype Prototype ist ein JavaScript Framework um den Umgang mit asynchronen Requests und der DOM Manipulation zu erleichtern. Zum Nutzen der Funktionalität ist nur eine zusätzliche JavaScript Datei nötig.

Anwendung von Prototype Um zum Beispiel Inhalt vom Server aus in ein DOM Objekt zu laden reicht folgende Zeile aus: new Ajax.Updater( object-id, URL ); Beispiel: new Ajax.Updater( mein-div, content.txt );

Anwendung von Prototype Auf DOM Objekte lässt sich mit Prototype auch sehr einfach zugreifen: $( object-id ).methode(); Beispiel: $( mein-div ).hide();

Prototype Live Demo

Ein Framework: Mochikit MochiKit makes JavaScript suck less MochiKit ist ein allgemeines JavaScript- Framework mit Ajax-Fähigkeiten, welches Konzepte der Programmiersprache Python umsetzt Modular aufgebaut, interessant ist MochiKit.Async

Datenübertragung per JSON sowie einfache DOM-Manipulation (MochiKit.DOM) Besonderheit: MochiKit gestattet verzögerte Ausführung von AJAX- Requests und implementiert Callbacks

Vor- und Nachteile Jetzt können wir alles hübsch dynamisch und interaktiv machen, ABER: Wie sieht es mit der Barrierefreiheit aus? Und wie mit der Usability?

Quellen http://de.wikipedia.org/wiki/javascript http://en.wikipedia.org/wiki/javascript_syntax http://en.wikipedia.org/wiki/dynamic_html http://de.wikipedia.org/wiki/ajax_% 28Programmierung%29 Ajax: die nächste Generation der Web-Anwendungen Stefan Mintert, ix 11/2005 Seite 56,