AJAX e altre applicazioni di Javascript - Luca Fabbri
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
AJAX e altre applicazioni di Javascript Luca Fabbri 1
Definizione di AJAX? AJAX, acronimo di Asynchronous JavaScript and XML, è una tecnica di sviluppo per creare applicazioni web interattive. 2
Perché arrivare ad AJAX Le applicazione web hanno per anni sofferto di “staticità”. L'aggiornamento della pagina visualizzata necessita sempre di una nuova comunicazione col server (invio di un form, pressione di un link). 3
Perché arrivare ad AJAX L'uso di Javascript per la modifica dinamica del DOM della pagina visualizzata ha portato grossi benefici (Dinamic HTML) ma queste modifiche devono avvenire lato client per la natura intrinseca di Javascript. La comunicazione col server per poter inviare informazioni è stata a lungo soggetta agli stessi limiti già citati. 4
Javascript e il DOM La manipolazione del DOM (Document Object Model) da parte dei browser è ben lontana da uno standard. Tutti i browser hanno però il supporto Javascript per manipolare il documento visualizzato. 5
Javascript e il DOM Ciao mondo Questo è HTML ● Ottenere un modo tramite il suo id: document.getElementById(“paragrafo-1”) ● Ottenere il testo (o l'HTML) interno ad un elemento: document.getElementById(“paragrafo-1”).innerHTML innerHTML è un attributo di lettura/scrittura 6
Javascript e il DOM ● Manipolazione dei nodi del DOM del documento. document.createElement(...) document.createTextNode(...) document.getElementsByClassName(...) ● Manipolazione di un nodo (anche document) node.childNodes node.firstChild node.lastChild node.nextSibling Purtroppo manca uno standard “sicuro” 7
Storia di AJAX Inizialmente implementato da Microsoft come oggetto ActiveX. Successivamente da molti altri browser in altre forme (incompatibilità di forma). Il nome “AJAX” si presenta per la prima volta nel 2005 in un articolo di Jesse James Garrett (che diventa famoso per quel motivo!). 8
Che cos'è AJAX? Tutti i browser più recenti sono in grado in un modo o nell'altro di eseguire speciali connessioni con il server (XMLHttpRequest). Possono eseguire richieste di tramite protocollo HTTP per ottenere una risposta in formato XML. L'uso di FORM e elementi INPUT non è più necessario per inviare dati! 9
Che cos'è AJAX? Questo XML può essere letto e manipolato con gli stessi mezzi che Javascript mette a disposizione del il documento corrente. Se l'XML ritornato è in formato (X)HTML può essere facilmente integrato con il codice HTML della pagina che ha scatenato la chiamata. 10
Come si presenta AJAX? Esempio 11
Problemi... Accessibilità!!! Sicurezza (...possiamo connetterci dove vogliamo?) 12
Problemi... C'è una parziale mancanza di uno standard unico, o dove questo è presente non è ben rispettato. Scrivere codice Javascript cross-browser può essere impegnativo. Scrivere codice Javascript cross-browser in presenza di chiamate AJAX e manipolazione del DOM può essere ulteriormente difficile... 13
Problemi... E' però possibile riuscire nell'intento gestendo tutte le possibili eccezioni e problemi dei vari browser... ma la soluzione spesso migliore è ricorrere a framework. 14
I framework Javascript Librerie che si occupano di incapsulare funzionalità, per estendere ulteriormente le potenzialità di Javascript. Molte (cosa ancor più importante) si occupano di fornire le funzionalità in modo indipendente dalla piattaforma. 15
I framework Javascript ● Alcune famose librerie: ● prototype.js ● script.aculo.us ● Mochikit ● Dojo ● JQuery 16
jQuery The Write Less, Do More, JavaScript Library 17
JQuery: introduzione jQuery is a fast, concise, JavaScript Library that simplifies how you traverse HTML documents, handle events, perform animations, and add Ajax interactions to your web pages. jQuery is designed to change the way that you write JavaScript. 18
JQuery: introduzione Le potenzialità della libreria sono praticamente tutte esprimibili con l'istanziazione di un particolare tipo di oggetto jQuery, tramite la funzione $. Segue lo standard degli oggetti Javascript. E' ottimamente documentata. E' altamente estendibile. 19
JQuery: introduzione Gli oggetti di tipo jQuery incapsulano uno o più nodi del DOM e permettono di agire contemporaneamente su tutti i nodi che rappresentano tramite metodi (cross browser) dell'oggetto stesso. Senza jQuery: document.getElementById(“...”).innerHTML Con jQuery: $(“...”).html() 20
JQuery: introduzione Ognuna di queste operazioni ritorna a sua volta un oggetto jQuery permettendo così operazioni a cascata (sintassi estremamente concisa e leggibile). 21
JQuery: basi di utilizzo La creazione di oggetti jQuery avviene con l'esplicito passaggio di un elemento del DOM al costruttore, oppure con del codice HTML in formato stringa o con un selettore CSS. 22
JQuery: basi di utilizzo Esempio $(node) $(“elemento uno della lista”) $(“#blockid p.testo img”) Uso a cascata $(“#blockid p.testo img”).addClass(“img-class”).hide() 23
JQuery: basi di utilizzo Esempi 24
JQuery: da esplorare... ● Il repository dei plugin ● Il sito dedicato a jQuery UI 25
Mappe di Google Le mappe di Google (googlemaps) sono un'applicazione rilasciata a libero utilizzo. Semplicemente includendo un sorgente javascript fornito (ma ben oscurato...) è possibile implementare nelle proprie pagine gran parte delle funzionalità dell'omonimo servizio maps.google.com 26
Mappe di Google E' necessario registrare (liberamente e in modo anonimo) una chiave da associare all'host utilizzato. Questo anche per utilizzi locali... http://localhost:8080/... http://code.google.com/apis/maps/signup.html 27
Mappe di Google Esempi online http://code.google.com/apis/maps/documentation/examples/ 28
Link http://it.wikipedia.org/wiki/AJAX http://www.howtocreate.co.uk/tutorials/javascript/domstructure http://jquery.com/ http://ui.jquery.com/ http://www.getfirebug.com/ http://code.google.com/apis/maps/documentation/examples/map-markers.html 29
Puoi anche leggere