JavaScript Basiskonzepte

Ähnliche Dokumente
DOM Document Object Model

Programmieren im Web 2.0

Web-Techniken Einführung in JavaScript

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

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung

Web-Programmierung (WPR)

Web-basierte Anwendungssysteme PHP-Einführung

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

JavaScript Die ersten Schritte. Holger Chudek Perfect Chain

JavaScript und PHP-Merkhilfe

Medien und Webtechnologie

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

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

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

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

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

JavaScript clientseitige Programmiersprache zur Dynamisierung von Internetseiten

Inhalt. Vorwort 13. Einleitung JavaScript-Grundlagen 17

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

Javascript. Einführung in Javascript. Autor: Christian Terbeck Erscheinungsjahr:

Welche Informatik-Kenntnisse bringen Sie mit?

Sicherheit in Rich Internet Applications

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

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

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

Ereignisse Auf Benutzereingaben reagieren

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI

Virtuelle Realität und Simulation - Übung 2

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

Interaktion Java und JavaScript

Übung zur Vorlesung Multimedia im Netz

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

Funktionen nur wenn dann

Java Anweisungen und Ablaufsteuerung

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

Funktionen nur wenn dann

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

Einführung in die Programmierung

Funktionen. - sind kleine, meist ausgelagerte Programme bzw. Programmfragmente. - können Werte zurückgeben, z.b. Berechnungen

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Vorkurs Informatik WiSe 16/17

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Einführung Internettechnologien. - Clientseitige Programmierung -

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Basisinformationstechnologie I

Einführung in Java. Ausgewählte Quellen zu Java

Java Zusammenfassung. Basisdatentypen ganzzahlig: Byte, Short, Integer, Long Fließkomma: Float, Double Zeichen: Character Wahrheitswerte: Boolean

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

Das lustige Überlebenshandbuch. Oliver Pehnke, Benjamin Schmid

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

RAP vs. GWT vs. GAE/J + jquery. Web Technologien im Verlgeich

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

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

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

Vorkurs Informatik WiSe 17/18

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

Lösungen der Aufgaben zur Klausurvorbereitung. Aufgabe 1: a) was sagen die folgenden Eigenschaften eines XML-Dokumentes aus? wohlgeformt gültig

Angewandte Mathematik und Programmierung

Skripten werden in HTML mit Hilfe des Skript-Tags eingefügt:

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Markup Injections. Volksmund: XSS. Mario Heiderich

Web-basierte Anwendungen

Webbasierte Programmierung

Michael Seeboerger-Weichselbaum. Das Einsteigerseminar JavaScript 4., überarbeitete Auflage

PPS-Veranstaltung. 1. Praxisveranstaltung

Agenda. Einleitung. Einbinden von JSF AJAX Beispiele Komponenten Entwicklung PrimeFaces Praktikum. Was ist JSF Aufbau und Techniken HTML vs.

Navigationsmenü im Stil von Registern

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Transkript:

JavaScript Basiskonzepte Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Department of Law and Economics WS 2011/2012 Mittwoch, 8:00 9:30 Raum HS 021, B4 1

Wrap-Up HTML dient zur Strukturierung von Website-Inhalten CSS definiert das Erscheinungsbild von Websites (http://web2.0calc.com/widgets/minimal/) Slide 2

Server-seitige Programmlogik HTML dient zur Strukturierung von Website-Inhalten CSS definiert das Erscheinungsbild von Websites Mit HTML + CSS lässt sich keine Programmlogik abbilden (z.b. x mal y ) è Verarbeitung auf dem Server (Request è Response) Antwort: HTML für 2 Client Server Eingabe: 2 Benutzeraktivität Server-seitige Verarbeitung Datenübertragung (http://web2.0calc.com/widgets/minimal/) Slide 3

Server-seitige Programmlogik HTML dient zur Strukturierung von Website-Inhalten CSS definiert das Erscheinungsbild von Websites Mit HTML + CSS lässt sich keine Programmlogik abbilden (z.b. x mal y ) è Verarbeitung auf dem Server (Request è Response) Antwort: HTML für 2 Client Server Eingabe: Benutzeraktivität Server-seitige Verarbeitung Datenübertragung (http://web2.0calc.com/widgets/minimal/) Slide 4

Server-seitige Programmlogik HTML dient zur Strukturierung von Website-Inhalten CSS definiert das Erscheinungsbild von Websites Mit HTML + CSS lässt sich keine Programmlogik abbilden (z.b. x mal y ) è Verarbeitung auf dem Server (Request è Response) Antwort: HTML für 2 3 Client Server Eingabe: 3 Benutzeraktivität Server-seitige Verarbeitung Datenübertragung (http://web2.0calc.com/widgets/minimal/) Slide 5

Server-seitige Programmlogik HTML dient zur Strukturierung von Website-Inhalten CSS definiert das Erscheinungsbild von Websites Mit HTML + CSS lässt sich keine Programmlogik abbilden (z.b. x mal y ) è Verarbeitung auf dem Server (Request è Response) Antwort: HTML für 2 3=6 Client Server Benutzeraktivität Server-seitige Verarbeitung Datenübertragung Eingabe: = (http://web2.0calc.com/widgets/minimal/) Slide 6

Server-seitige Programmlogik Vorteile Rechenintensive Operationen können auf leistungsstarker Server-Hardware ausgeführt werden Client hat keinen Einblick in die Programmlogik Nachteile Jede Operation erfordert Rücksprache mit dem Server Es wird immer eine komplett neue Website generiert und übertragen Kommunikation mit Server ist strikt synchron Client Server Benutzeraktivität Server-seitige Verarbeitung Datenübertragung (http://web2.0calc.com/widgets/minimal/) Slide 7

Client-seitige Programmlogik mit JavaScript JavaScript (JS) ermöglicht es Website- Inhalte client-seitig zu generieren, verändern, validieren und nachzuladen Weniger Datentransfer, schnellere Reaktionszeiten, ermöglicht asynchrone Kommunikation mit dem Server Mit JS modifiziert Client CV CV CV Server CV Benutzeraktivität Client-seitige Verarbeitung Server-seitige Verarbeitung Datenübertragung Ein-/Ausgabe (http://web2.0calc.com/widgets/minimal/) Slide 8

Client-seitige Programmlogik mit JavaScript JS (ECMA-262) ist eine Skriptsprache: Programmiersprache zur Steuerung von ein oder mehreren bestehenden Anwendungen (hier: Browser) Sandbox-Prinzip: Im Allg. nur Zugriff auf Elemente des Browsers, nicht auf das Betriebssystem (Dateisystem, Programme, Geräte, etc.) JS kann durch unterschiedliche Browser verschieden interpretiert werden (abhängig von der Layout-Engine) Trident: Microsoft Internet Explorer Gecko: Mozilla Firefox WebKit: Google Chrome, Apple Safari Presto: Opera Browser Betriebssystem JavaScript Steuerung (siehe auch: http://en.wikipedia.org/wiki/comparison_of_layout_engines_(ecmascript)) Slide 9

Client-seitige Programmlogik mit JavaScript JavaScript Java (Namensgebung Netscape & Sun Microsystems) Historische Entwicklung: 1995: LiveScript (Brendan Eich, Netscape) 1996: JavaScript (zur Interaktion mit Java-Applets) 1996: Konkurrenz durch Microsoft JScript (Y2K- Problematik) 1997: Standardisierung als ECMAScript (ECMA-262) 1998: ECMA-262 wird als ISO/IEC 16262 anerkannt Seit ca. 2003: Komplexe Web 2.0 Anwendungen (asynchronous JavaScript and XML = AJAX) Anwendungsbeispiele: (Ausschnitt aus: http://de.wikipedia.org/w/index.php? title=datei:genealogical_tree_of_programming_languages.svg) Slide 10

Integration von JavaScript in HTML Script-Tag Kann in Body und Head platziert werden Kann mit externer Datei verbunden werden Aufruf in Event-Attributen: Body-Events: onload, onunload Maus-Events: onclick, onmouseover, etc. Formular-Events: onfocus, onselect, onsubmit, etc. (siehe auch: http://www.w3schools.com /tags/ref_eventattributes.asp) mysite2.html (Script-Tag + externe Datei) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>my page</title> <script type="text/javascript" src="myscript.js" /> </script> </head> myscript.js <body></body></html> alert("hello world"); mysite1.html (Script-Tag) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>my page</title> <script type="text/javascript">alert("hello");</script> </head> <body> <script type="text/javascript">alert("world");</script> </body> </html> mysite3.html (Event-Attribute) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>my page</title> <meta http-equiv="content-script-type" content="text/javascript" /> </head> <body onload="alert('hello world');"> </body> </html> Slide 11

Datenstrukturen und Operatoren Datentypen: number, string, boolean, object, function, undefined Operatoren: Arithmetische Operatoren: + - * / % ++ -- Logische Operatoren: &&! Vergleichsoperatoren: == ===!= > < >= <= Zuweisung und Berechnungsoperatoren: = += -= *= /= %= Bit-Operatoren: >> << & ~ (siehe auch: http://de.selfhtml.org/javascript/ sprache/operatoren.htm) variables1.js (Datentyp number) var x = 2; var y = 3; var z = x + y; // z ist jetzt mit 5 belegt variables2.js (Datentyp string) var x = "zwei"; var y = "drei"; var z = x + y; // z ist jetzt mit "zweidrei" belegt variables3.js (Datentyp boolean) var x = 2; var y = 3; var z = x == y; // z ist jetzt mit false belegt z =!z; // z ist jetzt mit true belegt Slide 12

Datenstrukturen und Operatoren Objekte realisieren eine ungeordnete Sammlung von Variablen Arrays realisieren eine geordnete Liste von Variablen Sowohl Objekte als auch Arrays können zu Bäumen verschachtelt werden è JavaScript Object Notation (JSON) wird als Format zum Datenaustausch verwendet myarray.js (Datentyp object) var myarr= [22, 33]; var x = myarr[0]; // x wird mit 22 belegt var y = myarr[1]; // y wird mit 33 belegt var z = myarr.length // z wird mit 2 belegt myobject.js (Datentyp object) var myobj = {x: 2, y: 3}; // Punktnotation, z wird mit 5 belegt: var z = myobj.x + myobj.y; // Klammernotation, z wird mit -1 belegt: z = myobj["x"] - myobj["y"]; { } myjson.json (JSON Datei) "name": "Web Technologies", "tags": ["JavaScript","Lecture"], "parameter": { "x": 2, "y": 3 }, "result": 5 Slide 13

Kontrollstrukturen Verzweigungen If-Else Switch Schleifen While, Do-While For, For-In ifelse.js var x = 2; var y = 3; var z; If(x == y) { z = "gleich"; } else if (x < y) { z = "kleiner"; } else { z = "größer"; } false false x == y x < y true true z = "gleich"; z = "kleiner"; z = "größer"; Slide 14

Kontrollstrukturen Verzweigungen If-Else Switch Schleifen While, Do-While For, For-In break; Bricht die weitere Ausführung der Kontrollstruktur ab switch.js var x = 2; var y = 3; var op = "plus"; var z; switch(op) { case "plus": z = x + y; case break; "minus": case z = "minus": x - y; default: z = x - y; break; z = 0; } default: // z ist z mit = 0; 0 belegt } // z ist mit 5 belegt op == "plus" false op == "minus" false z = 0; true true z = x + y; y; break; z = x - y; y; break; Slide 15

Kontrollstrukturen Verzweigungen If-Else Switch Schleifen While, Do-While For, For-In break; Bricht die weitere Ausführung der Kontrollstruktur ab while.js var ingredients = [20, 60, 40]; var maxcup = 100; var incup = 0; var i = 0; while(incup + ingredients[i] < maxcup) { incup += ingredients[i]; i++; } // incup ist mit 80 belegt dowhile.js var ingredients = [20, 60, 40]; var maxcup = 100; var incup = 0; var i = 0; do { incup += ingredients[i]; i++; } while(incup < maxcup); // incup ist mit 120 belegt incup + ingredients[i] < maxcup incup += ingredients[i]; i++; true false true incup += ingredients[i]; i++; incup < maxcup false Slide 16

Kontrollstrukturen Verzweigungen If-Else Switch Schleifen While, Do-While For, For-In break; Bricht die weitere Ausführung der Kontrollstruktur ab continue; Überspringt den aktuellen Schritt der Kontrollstruktur und fährt mit dem Nachfolgenden fort for.js var ingredients = [20, 60, 40]; var incup = 0; for(var i = 0; i < ingredients.length; i++) { incup += ingredients[i]; } forin.js i++; var i = 0; i < ingredients.length true incup += ingredients[i]; var ingredients= {butter: 20, milk: 60, sugar: 40}; var incup = 0; for(var name in ingredients) { incup if(name += == ingredients[name]; "milk") continue; } incup += ingredients[name]; } false Slide 17

Funktionen Funktionen ermöglichen es Programmcode wieder zu verwenden Eine Funktion muss definiert werden bevor sie aufgerufen werden kann Kann Eingabe-Parameter besitzen (hier: ingredients) Kann einen Ausgabe-Wert besitzen (hier: return i;) Variable Scope: Variablen, die in einer Funktion deklariert werden, sind nur nur innerhalb dieser gültig Viele Funktionen werden bereits vom Browser bereitgestellt (z.b. alert("hi");) function.js var incup= 0; var pourincup = function(ingredients){ var i = 0; for(var name in ingredients) { incup += ingredients[name]; i++; } return i; }; var ingredients1 = {butter: 20, milk: 60}; var ingredients2 = {sugar: 40, eggs: 30}; var added = 0; added += pourincup(ingredients1); // incup ist jetzt belegt mit 80 added += pourincup(ingredients2); // incup ist jetzt belegt mit 150 Slide 18

Document Object Model Das Document Object Model (DOM): Spezifikation zum Zugriff auf HTML/XML Mittels JS lässt sich das DOM einer Website dynamisch verändern è document-objekt document.getelementbyid(id) bietet Zugriff auf HTML- Elemente, die mit einer ID versehen sind Die string-variable innerhtml steht für den HTML-Code innerhalb eines Elementes (siehe auch: http://de.selfhtml.org/javascript/objekte/ document.htm) dom.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>my page</title> <meta http-equiv="content-script-type" content="text/javascript" /> <script type="text/javascript"> var changename = function(newname){ var vorname = document.getelementbyid("vorname"); vorname.innerhtml = newname; }; </script> </head> <body> <table><tr><td id="vorname">donald</td> <td id="nachname">duck</td></tr></table> <p><img onclick="changename('duffy');" src="duffy.jpg" alt="duffy"/></p> </body> </html> Slide 19

Literatur Bücher: Douglas Crockford JavaScript: The Good Parts ISBN 978-0-596-51774-8 Christian Wenz JavaScript ISBN 978-3-89842-234-5 Online unter http://openbook.galileocomputing.de/javascript/ Web: http://www.ecma-international.org/publications/standards/ecma-262.htm https://developer.mozilla.org/en/javascript http://de.selfhtml.org/javascript/ http://www.w3schools.com/js/ http://www.w3.org/dom/ http://www.w3schools.com/dom/ Slide 20

Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Saarland University, Germany Univ.-Prof. Dr.-Ing. Wolfgang Maass