Corso di Applicazioni Telematiche



Documenti analoghi
Ajax è il nome nuovo introdotto dal web 2.0, ma non si tratta di un nuovo linguaggio di. Javascript and XML

INTRODUZIONE AI PRINCIPI DELLO SVILUPPO DI APPLICAZIONI WEB INTERATTIVE

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0

La tecnica AJAX. Progettazione di Sistemi Interattivi. Implementazione di sistemi interattivi web-based (seconda parte) Esempio: Google Maps

Lezione 1 Introduzione

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Introduzione ad AJAX

AJAX e altre applicazioni di Javascript. Luca Fabbri

Ajax. Introdotta da Microsoft nel 1998 è stata standardizzata e adottata da tutti i browser moderni.

sito web sito Internet

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

AJAX. Goy - a.a. 2006/2007 Servizi Web 1. Cos'è il Web 2.0

Flavio De Paoli

Manuale servizio Webmail. Introduzione alle Webmail...2 Webmail classica (SquirrelMail)...3 Webmail nuova (RoundCube)...8

La realizzazione di WebGis con strumenti "Open Source".

Programmazione server-side: Java Servlet

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Applicazioni web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications)

AJAX. Riccardo Rosati

Come funziona internet

JUG Ancona Italy. Google Web Toolkit. Giovanni Baleani Programmatore Java. Filippetti S.r.l.

Sito web parrocchiale: STRUMENTI E PROGRAMMI

DOM (Document Object Model) manipolato attraverso un linguaggio ECMAScript come JavaScript o JScript per mostrare le informazioni ed interagirvi;

Applicazioni Web: meccanismi per il passaggio di informazioni tramite HTTP Corso di Applicazioni Telematiche

View Mobile User s Guide

AJAX. Riccardo Rosati

Corso di Informatica Modulo T3 B1 Programmazione web

Client - Server. Client Web: il BROWSER

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

Realizzare una piccola chat in php senza database

Protocolli e architetture per WIS

Programmazione Server Side e Database in rete

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Port Community System del Porto di Ravenna CONFIGURAZIONE

UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II

La tecnica AJAX. Progettazione di Sistemi Interattivi. Implementazione di sistemi interattivi web-based (seconda parte) Esempio: Google Maps

prof. Mario Dalessandro

FOOD Consumption Data Base

IBM Software Demos Lotus Expeditor and Lotus Forms

Modulo informatica di base 1 Linea 2

La serializzazione e deserializzazione nel formato SOAP. A cura del docente Giuliano Pellegrini Parisi

Progettazione e Implementazione di API WebSocket per il Gateway Dog

Applicazioni web. Parte 8 AJAX

definizione o Asynchronous JavaScript and XML (AJAX)

Componenti Web: client-side e server-side

1.0 GUIDA PER L UTENTE

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Bibliografia: Utenti e sessioni

A. Ferrari. Ajax. Asynchronous JavaScript and XML. Alberto Ferrari

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Collegamento remoto vending machines by do-dots

Registratori di Cassa

via del mare n Frontone (PU) Italia

Corso di PHP. Prerequisiti. 1 - Introduzione

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

INTERNET PER INIZIARE PRIMA PARTE

Titolo Alfresco. Titolo1 Non solo un documentale

Protocolli applicativi: FTP

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo

Sviluppare applicazioni Web 2.0 con Ajax

Come Creare un sito web gratis

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

la tua presenza e il tuo BUSINESS ON-LINE

Programmazione Web. Introduzione

Comandi di Internet Explorer per aprire, chiudere e formattare la finestra Comando a menu

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it

Gestione Risorse Umane Web

Esercizi di JavaScript

appunti delle lezioni Architetture client/server: applicazioni client

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

Istruzioni per l installazione

2G, l evoluzione della piattaforma Team nel Web 2.0 Roma, 7 dicembre Andrea Carnevali R&D Director GESINF S.r.l.

Indice PARTE PRIMA L INIZIO 1

Architetture Web I Server Web e gli Standard della Comunicazione

Sommario. Introduzione a AJAX - Asynchronous Javascript And Xml. Motivazioni (1) XHTML e HTTP sono strumenti deboli

Ajax e jquery. Emiliano Castellina. Dipartimento di Automatica e Informatica Politecnico di Torino

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

I blog. Andrea Marin. a.a. 2013/2014. Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO

HTTP adaptation layer per generico protocollo di scambio dati

Visual basic base Lezione 01. L'ambiente di sviluppo

Rasip, MIDlet per scambio di messaggi SIP

Lezione 6: Form 27/04/2012

Gestione Manutenzioni Immobiliari.

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

Istruzioni di accesso alla propria casella di posta elettronica tramite Zimbra Web Mail

Procedura SMS. Manuale Utente

hi-com software realizzato da Hi-Think

Lezione 4 Progettazione di servizi

Corso di Informatica di Base. Laboratorio 2

Corso di HTML. Prerequisiti. Modulo L3. 1-Concetti generali. Browser Rete Internet Client e server. M. Malatesta 1-Concetti generali-12 28/07/2013

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia

Il tuo Studio... ovunque! Portale Studio, Portale Cliente, ServerSync, iphone Edition

Maxpho Commerce 11. Application Program Interface - API Instant Notifcation Service - INS. Data : 20 / 09 / 2011 Versione : 1.2 Autore: Maxpho Srl

RICEZIONE AUTOMATICA DEI CERTIFICATI DI MALATTIA 1.1. MALATTIE GESTIONE IMPORT AUTOMATICO 1.2. ATTIVAZIONE DELLA RICEZIONE DEL FILE CON L INPS

Progetto e sviluppo di un applicazione per il pilotaggio remoto di reti

Università degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea

Transcript:

Asynchronous JavaScript Technology and XML: Ajax Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università degli Studi di Napoli Federico II Facoltà di Ingegneria

Rich Internet Applications (RIA) Applicazioni web come applicazioni desktop Spesso necessitano di software ad-hoc Adobe Flash Java Silverlight Soluzioni ibride alternative Utilizzare le funzionalità del browser stesso Programmazione client side mediante JavaScript Ajax per interazione trasparente con il server Asynchronous XML and JavaScript 2

Asynchronous JavaScript and XML (AJAX) Umbrella term per più tecnologie Presentazione standard (CSS/XHTML) Visualizzazione dinamica ed interazione (DOM) Scambio e gestione dati (XML/XSLT) Trasferimento asincrono dati (XMLHttpRequest)...e JavaScript per mettere tutto assieme Non una tecnologia in senso stretto, quindi Più che altro una tecnica di programmazione Basata su tecnologie affermate e pre-esistenti 3

Un nuovo modello 4

Cosa cambia? Un nuovo intermediario tra client e server Non più natura START-STOP (Web classico) Nuovo layer, più responsive!? Ajax Engine Scritto in JavaScript Solitamente è in un frame nascosto Compito duale Rendering dell'interfaccia Interazione col server per conto dell'utente L utente interagisce con l'engine (JavaScript) 5

Modello Sincrono vs. Asincrono 6

Vantaggi... Tecnologie standard XML/HTML per i dati È ancora HTTP Richieste di piccole dimensioni (non necessariamente l'intera pagina) Minore traffico di rete Maggiore reattività dell'interfaccia utente Ajax è basato su JavaScript Le applicazioni AJAX sono portabili Supporto praticamente in tutti i browser 7

... e svantaggi Stessa pagina, quindi niente Back/Forward I segnalibri (bookmarks) non funzionano Possibili problemi di accessibilità Lo stato va gestito a livello applicativo È JavaScript... Deve essere, quindi, abilitato nel browser Vi sono incompatibilità tra i browser ed i Sistemi Operativi Al solito, molte librerie per gestirle... Server load Richieste piccole, ma frequenti (overhead) 8

Esempi di utilizzo (1) Validazione server-side in tempo reale di una form (prima del Submit) Autocompletamento di una form Caricamento di contenuti a richiesta Conseguenza di evento Interfaccia utente sofisticata Si modifica la pagina senza ricaricarla Submit parziale di una form Manda dati solo quando serve Non c'è bisogno di fare il refresh della pagina 9

Esempi di utilizzo (2) Aggiornamento e server-push Polling per avere sempre i dati più aggiornati Mashup Contenuti provenienti da siti diversi vengono messi assieme per realizzare un'applicazione complessa Pagina web come un'applicazione Una singola pagina web progettata per somigliare ad un'applicazione desktop Instant Messaging web-based Gateway verso IRC/XMPP/... 10

Esempio di interazione 11

L'oggetto XMLHttpRequest (XHR) API DOM per mandare richieste HTTP/HTTPS in un linguaggio di scripting (JavaScript) Ajax Engine come client HTTP Opzioni per impostare metodo/parametri/header Risposta gestita dal linguaggio stesso Funzione di callback Varie versioni, problemi di compatibilità Prima di divenire standard, era una soluzione proprietaria Microsoft XMLHttpRequest vs. ActiveXObject 12

Compatibilità XHR function newxmlhttprequest() { var request = null; var browser = navigator.useragent.touppercase(); if(typeof(xmlhttprequest) == "function" typeof(xmlhttprequest) == "object") { request = new XMLHttpRequest(); } else if(window.activexobject && browserutente.indexof("msie 4") < 0) { if(browser.indexof("msie 5") < 0) { request = new ActiveXObject("Msxml2.XMLHTTP"); } else { request = new ActiveXObject("Microsoft.XMLHTTP"); } } return request; } 13

Preparare una richiesta Metodi request.open(method, url, asynchronous); Il metodo è solitamente GET o POST La url funziona come il target di una form...... ma se il metodo è GET, vanno aggiunti i parametri! Si può scegliere se aspettare o meno la risposta Con asynchronous=true (default) si usa una callback Header request.setrequestheader(name, value); Utile ad esempio se il metodo è POST Content-Type application/x-www-form-urlencoded; charset=utf-8 14

Eventi e callback Se la richiesta è asincrona, serve callback function per gestire gli eventi (come in JavaScript) onreadystatechange event listener Property readystate per lo stato corrente della richiesta readystate=0: richiesta creata, ma ancora niente open() readystate=1: open(), ma ancora niente send() readystate=2: dopo send() readystate=3: server contattato, ma ancora nessuna risposta readystate=4: risposta ottenuta e disponibile Unico valore implementato ovunque è 4 Unico stato strettamente necessario Risposta gestita qui 15

Mandare la richiesta Una volta preparata, si spedisce la richiesta request.send(content); GET: content è il payload da allegare null in caso di GET Il Content-Type va specificato prima (ad es. POST ) request.send(null); POST: request.setrequestheader('content-type', 'application/x-www-form-urlencoded'); request.send('var1=' + value1 + '&var2=' + value2); 16

Gestire la risposta La property status fornisce il codice di risposta Ad es. 200 come successo La risposta è solitamente XML request.responsexml Contiene l'oggetto XML della risposta (DOM) Navigabile con i soliti metodi JavaScript Può essere altro (testo, JSON, ecc.) request.responsetext Contiene la risposta come testo semplice Sta all'applicazione gestirlo Ad es. Iniettare il testo in HTML 17

Un'alternativa a XML: JSON JavaScript Object Notation (JSON) Serializzazione di oggetti complessi Formato di interscambio di dati Non un linguaggio di markup general purpose Concepito per essere leggero Alternativa ad XML in chiamate Ajax Molto semplice e human-readable Supporto immediato in JavaScript Parsing mediante eval() Accesso e manipolazione come oggetti classici 18

Esempio JSON Un oggetto JSON { "nome" : "Ciccio", "cognome" : "Pernacchio", "anni" : 46, "telefono": ["328/1234567","081/9876543"] } In JavaScript var JSON = {cognome: "Pippozzo"; telefono: ["339/5656565","02/1357924"]} var dati = eval("(" + JSON + ")"); alert('nome: '+dati.cognome+' Cellulare: '+dati.telefono[1]); 19

Il problema delle due connessioni HTTP/1.1 di default prevede al massimo due connessioni verso lo stesso server In RFC 2616 è obbligatorio per i browser Erano 4 in HTTP/1.0 (ma niente pipelining...) Molto è cambiato da allora (1999!) Multi-tab browsing, Mashup, Comet,..., Ajax! I browser permettono di cambiare quel valore...... ma le applicazioni Ajax non possono fidarsi! Necessario gestire questo limite in modo opportuno Farsi bastare le due connessioni Mettere contenuto su host diversi 20

Librerie Ajax Come per JavaScript, varie librerie Problemi di compatibilità Semplificazione richieste/risposte Gestione a grana fine degli eventi... Librerie e framework JQuery (http://jquery.com) Script.aculo.us (http://script.aculo.us/) GWT (http://code.google.com/webtoolkit/) 21

Ajax in jquery Intera suite di funzionalità Ajax Wrapper per preparare e mandare richieste.ajax(),.get(),.post(),... Vari handler per gestire eventi diversi.ajaxstart(),.ajaxerror(),.ajaxsuccess(),... Differenziazione tra eventi locali e globali.ajaxcomplete() vs.complete() Possibile iniettare direttamente risposta in HTML.load() Chaining di chiamate su oggetti jquery Supporto nativo JSON 22

Google Web Toolkit (GWT) Intero framework per applicazioni Ajax Open source Applicazioni scritte in Java API che mascherano funzionalità complesse Manipolazioni DOM Gestione XHR Internazionalizzazione Il compilatore si occupa del resto JavaScript ad-hoc, ottimizzato e cross platform Formattazione messaggi di scambio (RPC) 23

Domande? 24