Web Application Engineering Ajax & JSF Web Application Engineering Ajax & JSF cristian lucchesi IIT-CNR Pescara, 15-16 Maggio 2007.

Slides:



Advertisements
Presentazioni simili
Introduzione ai Web Services. E' un nuovo meccanismo RPC ottimizzato per l'uso in Internet Un qualunque Client su una generica piattaforma deve poter.
Advertisements

Interazione avanzata su web: dai plugin ad Ajax
Introduzione a AJAX - Asynchronous Javascript And Xml
Lezione 8.
Ajax.ptt 1 Asynchronous JavaScript and XML cross-browser XMLHttpRequest()standard w3c firefox,opera,gchrome ActiveXObject("Microsoft.XMLHTTP") ActiveXObject("Msxml2.XMLHTTP")
Google Visualization API
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
JUG – Ancona Italy AJAX Giovanni Baleani Developer IBS srl.
Web Application Engineering Java Server Faces cristian lucchesi IIT-CNR Pescara, Maggio 2007.
1 Università della Tuscia - Facoltà di Scienze Politiche. Informatica 2 - a.a Prof. Francesco Donini Active Server Pages.
Parte 2 Programmare in Matlab – I Sommario: Introduzione: m-file Strutture condizionali e cicli –Istruzione “if” + Operatori logici in MatlabIstruzione.
H T M L Hyper Text Markup Language L' HTML è un linguaggio di markup usato per la creazione di documenti ipertestuali sotto forma di pagine web.
Utilizzare il browser Firefox, altrimenti le mappe immagini non funzionano.
Dati in rete Appunti.
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Sviluppo applicativo mobile per lettore barcode datalogic
HTML5 Tools Pearson
AGYO – Adempimenti 13 Settembre Chiara Benini.
Corso per Webmaster base
IL SOFTWARE (FPwin 6.0).
“Vivere insieme” – Lezione6
Vulnerability Assessment
Università degli Studi di Modena e Reggio Emilia
Lato Server - OMNIS Web Web Services.
Conformità agli standard ufficiali
“Vivere insieme” – Lezione6
Corso «Nozioni di Informatica» – riepilogo di alcuni concetti visti
Primo corso per operatore ALPE NILDE hot topics
La rappresentazione delle informazioni
NegoziCS packing list fidelitycard ordini merceinsaldo www ® software
EasyGraph Dynamic web-based dashboard
Generazione di codice dinamico per la realizzazione di catene di servizi componibili Matteo Fazi – matr
Applicazione web basata su web service e web socket
Dati in rete Appunti.
Pic16f84 Assembly I/O.
Davide Pegoraro.
GridFlex: gestione di software
Paradigma MVC Ing. Buttolo Marco.
APACHE2-PHP su Raspberry
Corso di Ingegneria del Web e Applicazioni A A
Job Application Monitoring (JAM)
Sviluppo di server web e sistema di caching per contenuti dinamici
FORMULE E FUNZIONI SU EXCEL
Qt by Examples LINUX DAY
Asynchronous JavaScript and XML
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Istruzioni per il nuovo sistema di acquisizione dati
Sviluppo di un'applicazione web per l'utilizzo del framework SparkER
Studente : Andrea Cassarà Classe: 5AII A.S. 2014/2015 Link Sito
Creazione di pagine per Internet
Internet.
Progetto di Tecnologie Web 2014/2015 THERMOWEB
Introduzione alla materia sistemi
Gestione Griglie nel Form Designer
ABAP Objects ALV Grid Mantova, 30 dicembre 2018.
HTML IL TAG .
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
HTML IL TAG .
© 2007 SEI-Società Editrice Internazionale, Apogeo
Vademecum per le Scuole
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Diventa Agente di Keepsporting!
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
OpenLayers Client di mappe “non solo” WMS
DOM Document Object Model.
8. Altri oggetti JavaScript
ESERCITAZIONE PRESENTAZIONE MULTIMEDIALE
UNIVERSITÀ DI MODENA E REGGIO EMILIA
Vademecum per le Scuole
Transcript della presentazione:

Web Application Engineering Ajax & JSF Web Application Engineering Ajax & JSF cristian lucchesi IIT-CNR Pescara, Maggio 2007

Desktop Application vs Web Application oggi quando si scrive una applicazione software si hanno due scelte: applicazione desktop sono di solito rapide (girano sul proprio computer, non devono aspettare una connessione internet) hanno una grande interfaccia grafica sono incredibilmente dinamiche, puoi cliccare, inserire, trascinare aprire menu, sottomenu, etc, praticamente senza aspettare applicazione web sono (di solito) aggiornatissime forniscono servizi che non sono pensabili sul proprio pc (si pensi a amazon.com, eBay, google sono di solito lente, spesso si deve attendere per una risposta dal server dopo un click si deve aspettare che la pagina si ricarichi aspettando la risposta dal server prima che la nuova pagina sia generata

Ajax molti hanno già sentito almeno parlare di AJAX (Asynchronous JavaScript And XML) con AJAX le applicazioni web acquistano i vantaggi delle applicazioni desktop gli scopi principali di AJAX sono: inviare richieste ad un server in funzione degli eventi generati dall'utente prelevare informazioni in modo asincrono da un server aggiornare solo una parte della pagina, in modo da: ricaricare solo la parte della pagina relativa alle informazioni prelevate evitare di ricarica tutta la pagina caricare inizialmente solo pochi dati e prelevare il resto in funzione delle eventi dell'utente

Modello classico

Modello Ajax

Vecchie tecnologie nuovi trucchi ci sono molte tecnologie che coinvolte nelle applicazioni Ajax HTML è utilizzato per construire le pagine web e identificare i campi per il successivo uso nel resto dell'applicazione JavaScript è il cuore del codice tramite cui funzionano le applicazioni AJAX ed è di supporto per la comunicazione con le applicazioni server DHTML o Dynamic HTML, aiuta nel aggiornare le pagine dinamicamente DOM è utilizzato (tramite Javascript) per manipolare sia la struttura della pagina HTML (in alcuni casi) sia per manipolare le risposte XML restituite dal server

Interazioni AJAX

XMLHttpRequest object il primo passo è creare e configurare un oggetto XMLHttpRequest object ci sono due implementazioni di questo oggetto, ActiveXObject per IE, e XMLHttpRequest per gli altri browser l'oggetto deve essere configurato specificando: il metodo HTTP, GET o POST la URI del metodo sul server con cui comunicaree come terzo parametro, specificare se si tratta di una interazione sincrona o asincrona (true vuol dire asincrona) var httpRequest; // per IE if (window.ActiveXObject) { httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { // per gli altri browser httpRequest = new XMLHttpRequest(); } function callServer() { httpRequest.open("GET", url, true);... }

XMLHttpRequest object deve essere impostato il nome della funzione javascript che gestirà la chiamata di ritorno (callback) dal server, nell'esempio la funzione si chiama processRequest infine si invia la richiesta, il parametro null indica che non si invia nessun parametro, tipicamente si può inviare un file xml function callServer() {... httpRequest.onreadystatechange = processRequest;... } function callServer() {... httpRequest.send(null); } cont.

Gestire la risposta del server la risposta del server arriva, in modo asincrono, in XML l'XML viene processato in Javascript dalla funzione dei callback specificata nell'oggetto httpRequest la funzione per prima cosa verifica lo stato dell'oggetto httpRequest, 4 significa che la risposta è completa successivamente controlla che la richiesta sia andata a buon fine controllando l'HTTP status code function processRequest() { if (httpRequest.readyState == 4) { if(httpRequest.status == 200) { //process the response } else { alert("Error loading page\n" + httpRequest.status + ":" + httpRequest.statusText); } } }

Processare la risposta del server la risposta è all'interno dell'attributo responseText dell'oggetto XMLHttpRequest la risposta è sempre in XML e l'attributo responseXML dell'oggetto XMLHttpRequest contiene la rappresentazione dell'oggetto in XML l'XML può essere analizzato dal Javascript utilizzando il DOM per ottenere i dati //The method getElementsByTagName, //gets the element defined by the given tag var profileXML = httpRequest.responseXML.getElementsByTagName("Profile")[0]; //The node value will give you actual data var profileText = profileXML.childNodes[0].nodeValue;

Aggiornare l'HTML della pagina una volta ottenuti i dati, l'ultimo passo è aggiornate l'HTML tramite il DOM della pagina HTML in javascript si possono modificare (e ricaricare) gli elementi della pagina anche dopo che la pagina è stata caricata il metodo document.getElementById (id) è utilizzato per referenziare l'elemento della pagina con l'id specificato //Create the Text Node with the data received var profileBody = document.createTextNode(profileText); //Get the reference of the DIV in the HTML DOM //by passing the ID var profileSection= document.getElementById("profileSection"); //Check if the TextNode already exist if(profileSection.childNodes[0]) { //If yes then replace the existing node with the new one profileSection.replaceChild(profileBody, profileSection.childNodes[0]); } else { //If not then append the new Text node profileSection.appendChild(profileBody); }

Legare Ajax ad un evento per legare l'interazione Ajax alla pagina è necessario: identificare quella parte della pagina che deve essere aggiornata dinamicamente (tipicamente tramite l'utilizzo dell'attributo id)... identificare quale evento aggiornerà l'area prescelta cliccare su un link (onclick="javascript:callServer()") passare il mouse su un'immagine (onmouseover="javascript:callServer()) ogni volta che si inserisce un carattere in un input (onkeyup)...

Ajax Framework Un framework aiuta il lavoro del programmatore sia per la scrittura del codice lato client (per spedire le richieste e ricevere le risposte) che lato server per processare le richieste e fornire le risposte al browser Ajax component frameworks offrono componenti pre-built, come tabbed panel che automaticamente creano e gestiscono l'html, autocompletion, drag and drop,... offrono API per la customizzazione offrono skinning facilities supportano il controllo programmatico dei componenti Server-driver Ajax Framework i componenti sono di solito creati e manipolati dal server utilizzando un linguaggio di programmazione o di template le pagine sono generate da una combinazione di elementi HTML generati sia lato server che lato client le azioni dell'utente sono comunicate al server tramite le tecniche Ajax, il codice lato server manipola le richieste e i cambiamenti sul modello sono riflessi sul client automaticamente

Ajax4Jsf Ajax4jsf è un server-driver Ajax framework Ajax4jsf estende le JSF aggiungendo la gestione di AJAX nelle applicazioni JSF senza preoccuparsi di scrivere nemmeno una riga di Javascript

Ajax4jsf e JSF life-cycle

Riferimenti [Jesse James Garrett] Ajax: A New Approach to Web Applications essays/archives/ php Implementing simple AJAX interaction in your Web Application using XMLHttpRequest object: viewexample.jsp?id=111 Mastering Ajax, Part 1: Introduction to Ajax: ibm.com/developerworks/ web/library/wa-ajaxintro1.html ajax-tutorials.com: JBoss Ajax4jsf

grazie per l’attenzione