jquery DIE Javascript-Library

Ähnliche Dokumente
Webengineering. jquery

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

Programmieren im Web 2.0

APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst

Ereignisse Auf Benutzereingaben reagieren

Einführung in Google Web Toolkit

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

jquery! JavaScript Frameworks Dr. Cora Burger

XPages Good to know. Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015

JavaScript in Drupal

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG

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

Webseiten erstellen für Einsteiger

ASP.NET: ATLAS -Framework. Nico Orschel Microsoft Student Partner, TU Ilmenau

AJAX Implementierung mit Joomla!

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

Inhalt. Teil I: Der Sprachkern von JavaScript

JavaScript Frameworks für Mobile

Rich Internet Applications, Flex & Mate. (Ja, das ist Grafische Benutzeroberflächen!) Jakob Külzer jakob.kuelzer@gmail.

DataTables LDAP Service usage Guide

Firefox Add-ons. Präsentation in WAP WS09/10 von Christoph ASCHBERGER, Andreas BERTOLIN, Robert MUTTER und Yunzhou XU

Programmieren von Webinformationssystemen

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

TUT1 Javascript-Frameworks zum Erstellen von plattformunabhängigen mobilen Anwendungen

BXE 2.0 The browser based Wysiwyg XML Editor

High Performance Websites1/ 18 MBit

Web-Performance-Optimierung - Websites auf Speed SEO Barbecue - DIWISH - Kiel August Timo Heinrich t.heinrich@online-werbung.

Verteilte Systeme Hochschule Mannheim

Erfahrungsbericht. Sven Koschnicke Christian Wulf Florian Fittkau Universeller Aufgabenclient

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

DCCS Lotusphere Nachlese 2012 Was sind XPages? Mobile Features für XPages

Einführung in das Google Web Toolkit am Beispiel eines Projektes aus der Verkehrstelematik

Browserbasiertes, kollaboratives Whiteboard

Java - Webapplikationen

Einstieg in das YUI DataTable Widget 2.8.0r

Code-Organisation in JavaScript

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

Wie funktioniert das WWW? Sicher im WWW

Die offizielle Homepage, Informationen, Entwicklergemeinde, etc. findet man unter

Fortgeschrittene Servlet- Techniken. Ralf Gitzel

Multimediale Webprogrammierung APIs in HTML /1. Multimediale Webprogrammierung APIs in HTML / /5

Skalierbare Webanwendungen mit Python und Google App Engine

inews: XML in der Praxis Konvertierung von Objekten nach XML und zurück Dr. St. Seefeld / INGTES AG

JavaScript: Von einfachen Scripten zu komplexen Anwendungen. MMT Dezember 2011

Seite 1 von 17 UPDATE:

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

Android User Interface

Ein UI in zwei Welten - Controls in HTML5 und WPF. Timo Korinth

Designänderungen mit CSS und jquery

Zend Framework MVC Applikationen testen

Automatisches Exploratives Testen von Webanwendungen

Web-Anwendungsentwicklung mit dem Delivery Server

Cross Plattform App Developement. Simon Groth

Neue Features in C# 2.0

HTML5 2 1 / 6. Doing Web Apps HTML5 2. Letzte Änderung: Version: 1.1

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Testgetriebenes Ajax. Johannes Link unabhängiger Softwarecoach Marco Klemm andrena objects ag

Model-View-Controller

Wir bringen Ihre Notes/Domino Anwendungen sicher ins Web , Bilster Berg Drive Resort Michael Steinhoff, agentbase AG.

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Hilfsblatt für C++ Prüfungen im 5. Semester

Programmieren von Webinformationssystemen

Oliver Zeigermann, Stefan Toth embarc GmbH. Flux Facebooks Beitrag zur UI- Architektur der Zukunft

Übung 1: Von einer naiven JavaScript Applikation zu einem modernen Front-End Build:

Daten in EPUB visualisieren und dynamisch aktualisieren

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung

Süddeutsche Zeitung als digitale Ausgabe

Brauche ich noch jquery oder JavaScript? Ich hab ja Dynamic Actions?

Monaden in anderen Programmiersprachen

Wir bewegen Marken. Richtlinien von MRAID basierten InApp-HTML5-MobileAds innerhalb des SevenOne Media Portfolios. InApp HTML5

Sicherheit in Rich Internet Applications

Typo3 ist ein Content-Management-System (CMS), mit dem die Web-Seiten erstellt und editiert werden.

AJAX SSL- Wizard Referenz

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

HTML5 offline - Fallstricke von Web-Apps und Webseiten. Ulrich Schmidt (Sevenval GmbH)

Objective-C CheatSheet

JavaScript aus der Hoelle ein Vortrag von Mario Heiderich OWASP Nuernberg 2009 AD

Frontend-Entwicklung mit JavaScript

Moderne Benutzeroberflächen für SAP Anwendungen

Barrierefreie, Java-Script gestützte Webapplikationen im praxisnahen Umfeld. Felix Nagel IKT Forum 2012, Linz

Weboberflächen testen

Über mich. Daniel Bälz. Softwareentwickler (inovex GmbH) github.com/dbaelz

Multivariate Tests mit Google Analytics

Webseiten werden mobil Planung geht vor

Transkript:

jquery DIE Javascript-Library Uwe Dierolf INETBIB 2010, 14. April.2010 KIT-BIBLIOTHEK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholz-Gemeinschaft

Inhalt Motivation Selektoren Events Animationen DOM Manipulation AJAX Plugins Tipps für Entwickler Beispiele 2 18.06.2015

Motivation Rich Clients Beispiele jquery UI = User Interface http://jqueryui.com/ Comicstrip Navigation http://paulbakaus.com/lab/navigation/comicstrip/ Einfache Manipulation von Seiteninhalten Beispiel KVK KVK-Suchmaske Eigene Kataloge Zugriff auf Daten und Ereignisse in Seiten Beispiel KIT-Katalog Loggen von Mausklicks auf externe Links Tastatursteuerung Browserunabhängige Erstellung von Javascript-Code 3 18.06.2015

Unobtrusive Javascript? Bedeutung Idee unaufdringlich, unauffällig CSS trennt Layoutinformation vom HTML jquery trennt Javascript vom HTML Separation von Funktionalität (behaviour layer) Einklinken in HTML-Seiten Laden von jquery und eigenem JS-Programm $(document).ready(function() {.}); 4 18.06.2015

Selektoren Schnell mal "Objekte" im HTML auffinden IDs, Klassen, Attribute, Attribute mit speziellen Werten etc. $('#id'), $('.class'), $('element') Attribute [name=value] Multiple selectors Hierarchisch Filter AND [name=value][name2=value2] OR ( selector1, selector2, selectorn ) $('ancestor descendant'), $('parent > child' ) $('p:first'), $('div:visible' ), $('*:header' ) U.v.a. mehr (s. jquery) $('div:has(img.thumbnail[src$=.png ]:not(:hidden))' ) 5 18.06.2015

Selektoren II Liefern Treffermengen (wrapped set), auf die Aktionen angewandt werden können Chaining von Aktionen Jede Methode liefert die Objekte zurück, auf denen Sie arbeitet Beispiel Suche alle Paragraphen und mache darin den Text rot und blende sie dann langsam aus $("p").css("color","red").hide("slow") 6 18.06.2015

Events Ereignisse abfangen Events an Objekte binden (bind / unbind) $('#id').bind('click', callbackhandler) $('#id').bind('click', function() { alert('user clicked on "foo."'); }); Shortcut für bind('eventname ) click() mouseenter() etc. Eventhandler erhält das Event Object Praktisch, um z.b. das Objekt zu ermitteln, auf das geklickt wurde Live-Events Events Objekten zuordnen, die es noch nicht gibt 7 18.06.2015

Animationen Von jquery UI (= user interface) lernen Comicstrip animation (a la Macintosh) Z.B. von Paul Bakaus Fisheye http://interface.eyecon.ro/demos/fisheye.html 8 18.06.2015

DOM-Manipulation Insert / change / replace / remove nodes Inside.append(content) /.prepend(content) Outside.after(content) /.before(content) Around.wrap(content) /.wrapall(content) Einfache Operationen $('#id').text('der Text') / $('#id').html('<p>huhu</p>') $('#id').empty() /.remove() 9 18.06.2015

AJAX Laden von "externen" Inhalten VORSICHT: Sicherheitsmodell schränkt ein Extern heißt "auf dem eigenen Server!" Man sieht nicht unbedingt sofort, dass AJAX im Spiel ist $('#id').load("externaldata.html" ) Praktisch: load() erlaubt auch die Angabe von Selektoren load(file #id) $.get("http://...", [ data ], [callback], [ type ] ) ; Analog POST-Requests $.getscript("meinjavascript.js", [callback] ) ; Callback wird nur bei Erfolg aufgerufen! 10 18.06.2015

Tipps Möglichst oft IDs und Klassennamen im HTML einsetzen Sowas kann man einfach per Selektor suchen Man kann mehr als nur einen Klassennamen verwenden Wird oft zum Speichern eines Status benutzt Beliebige eigene Attributnamen sind praktisch Kann man mit attr() leicht lesen und ändern $('#id').attr('attributname') $('#id').attr('attributname',newvalue) 11 18.06.2015

Plugins nutzen Wer suchet, der findet! Nicht gleich alles selber programmieren Es gibt tausende von Plugins Eigene Plugins zu erstellen, ist nicht (so) schwer 12 18.06.2015

"Meine" Plugins jquery.cookies.2.2.0.js Cookie-Management jquery.hotkeys.js jquery.json-2.2.js JSON-Behandlung jquery.values.js Verwaltung von Formularwerten jquery.sync-load.js (Jakob Westhoff) Synchrone load()-function zum Laden von HTML in Variablen jtip.js (modified) Tooltips von Cody Lindley 13 18.06.2015

Fallstricke beim Entwickeln Fehler (frühzeitig) erkennen Beispiel Include eines jquery-plugins vergessen aber Plugin-function aufgerufen Ready-Handler bricht mitten drin ab! Firefox-Fehlerkonsole öffnen Firebug-Konsole benutzen Unten am Rand aufs rote Kreuz achten 14 18.06.2015

Fallstricke bei event-handlern I Man kann einen Event mehrmals an ein Objekt binden vorher unbind() verwenden Hilfreich: "namespaces" $('div').bind('click.mynamespace', function () {/*... */ }); $('div').unbind('click.mynamespace') ; Alles entfernen: $('div').unbind('. mynamespace') ; Event-Modell hängt LEIDER DOCH vom Browser ab Zum Glück nur selten! Bsp.: change-event kommt beim IE erst nach blur Bubbling von unten nach oben Ggfs. stoppropagation verwenden 15 18.06.2015

Fallstricke bei event-handlern II Callback ohne Argumente $.get('myhtmlpage.html', mycallback); Callback mit Argumenten Falsch: $.get('myhtmlpage.html', mycallback(param1, param2)); Richtig $.get('myhtmlpage.html', function(){ mycallback(param1, param2); }); 16 18.06.2015

Javascript-Tipps Rückgabewerte Sind manchmal null oder undefined oder der String "undefined" Rückgabewerte sind manchmal Objekte, manchmal Strings Beispiel JSON Firefox ab 3.5 behandelt JSON intern als Objekt, IE noch nicht Führt zu JSON.parse-Fehlern Code schützen Google Closure Compiler http://code.google.com/intl/de-de/closure/compiler/ JS Obfuscator http://javascript-obfuscator.software.informer.com/ 17 18.06.2015

VORSICHT Cookies Cookies als Gedächtnis Kann ins Auge gehen, da zu viel zum Server übertragen wird Error 500 Abhilfe: localstorage Nachteil: Kennen noch nicht alle Browsern 18 18.06.2015

jquery lernen jquery in Action lesen Herumspielen mit den diversen Labs http://www.ubka.uni-karlsruhe.de/jquery/jquery-in-action- DEMO/chapter1/document.ready.html Tools für Firefox Firebug FireQuery Eventbug Livehttpheaders 19 18.06.2015

Fazit Wer es nicht benutzt, ist selber schuld jquery ist klein Ziemlich gut getestet Sehr performant Kompatibel mit anderen JS-Libraries (noconflict) jquery 1.4 ist noch neu Z.T. um Faktoren schneller Vorsicht bei Verwendung alter Plugins oder UI 20 18.06.2015

Literatur jquery in Action, Bear Bibeault undyehuda Katz, engl. jquery, Ralph Steyer), dt., Learning jquery 1.3, PACKT Publishing, engl. jquery Reference Guide, PACKT Publishing, engl. jquery UI 1.6, PACKT Publishing, engl. (neu 1.7) 21 18.06.2015

Links http://docs.jquery.com/main_page http://www.ubka.uni-karlsruhe.de/jquery/jquery-in-action-demo/ http://en.wikipedia.org/wiki/unobtrusive_javascript http://westhoffswelt.de/blog.html http://westhoffswelt.de/data/portfolio/webtechcon_2009_bubbles_and_t rees_with_jquery.pdf 22 18.06.2015