SlideShare une entreprise Scribd logo
1  sur  20
 AJAX sta per Asynchronous Javascript and XML

 Molti pensano sia un linguaggio mentre invece è una tecnica

 Esiste da molti anni, ma con altro nome e con altra forma

 E’ il risultato e allo stesso tempo il fautore dello sviluppo del

   web nella forma che conosciamo come “Web 2.0”

 Raggruppa diverse tecnologie e linguaggi per ottenere lo

   scopo principale, ovvero lo sviluppo web performante
                                                                      2



   AJAX
 Dal 2000 in poi, il web ha subito una evoluzione sempre più

  notevole in termini di tecnologie

 Le infrastrutture più capienti hanno creato i presupposti per

  uno sviluppo web più accurato e più complesso

 Il web ha subito una evoluzione tale che oggi, con il concetto

  di web 2.0, possiamo dire che internet è diventata una vera e

  propria piattaforma applicativa
                                                                   3



   AJAX
 Questa crescita passa per AJAX in maniera rilevante

 Il termine AJAX (Asynchronous Javascript and XML) è stato

  coniato nel 2005 da Jesse James Garrett di Adaptive Path LLC

 Garrett pubblicò un articolo che si chiamava “Ajax: A New

  Approach to Web Applications”

 Questo articolo ancora oggi è disponibile

http://www.adaptivepath.com/ideas/essays/archives/000385.php
                                                                 4



   AJAX
 Garrett era dell’avviso che il divario tra le applicazioni

   tradizionali in locale e quelle web stesse sempre più

   diminuendo

 Il modello citato era Google e l’articolo originale citava:

Google Suggest and Google Maps are two examples of a new
approach to web applications that we at Adaptive Path have
been calling Ajax.
The name is shorthand for Asynchronous JavaScript + XML,
and it represents a fundamental shift in what’s possible on
the Web.                                                        5



   AJAX
 Da quel momento in poi la stessa rete ritenne valido il termine
  AJAX per indicare qualcosa che rappresentava il contesto
  evolutivo del web
 Il numero di articoli e citazioni di questo termine aumentarono
  in maniera esponenziale
 Le applicazioni, intese sempre più come rich client applications
  lato web, erano state identificate come prodotto di una
  elaborazione asincrona che avesse come attori principali
  Javascript e XML
 In seguito, XML verrà spesso rimpiazzato con JSON
                                                                     6



   AJAX
 Quando nel 1990 un certo Tim Berners-Lee ideò il WWW

   inteso come ragnatela di informazioni e siti web collegati tra

   loro attraverso link, non poteva immaginare questa evoluzione

 Con l’evoluzione dei siti e l’introduzione di un linguaggio di

   scripting lato client così potente come Javascript, il web

   progredì in maniera velocissima

 Le pagine web divennero ben presto pesanti, per la logica di

   funzionamento che prevedeva una richiesta e una risposta         7



   AJAX
 La risposta ottenuta dal server web era completa della parte
   grafica, che in pratica corrispondeva alla maggioranza del peso
   dei dati ricevuti dal client
 L’idea di base fu quindi quella di disaccoppiare queste parti
 La parte grafica, che era la parte rilevante, andava
   necessariamente staccata da quella dei dati, minoritaria
 Questo fu possibile proprio grazie a Javascript, che consentiva
   una capacità di azione e interazione lato client notevole
 I dati venivano richiesti al server e la comunicazione avveniva
   con l’ausilio di XML                                              8



   AJAX
 Tanti non sanno che AJAX è nato (come tecnica) moltissimi

   anni fa

 L’anno di riferimento era il 1996 circa

 Allora si usava la tecnica del “frame nascosto” per consentire

   una risposta veloce al minimo della interazione visiva tra client

   e server


                                                                       9



   AJAX
 Il meccanismo era basato sulla presenza di un frame che si

  occupasse solo della logica di comunicazione da/verso il server

 Un frame normalmente con larghezza o altezza zero e non

  ridimensionabile, veniva usato come broker di informazioni

 Questo consentiva, tramite un linguaggio come Javascript e

  tramite il DOM, una rappresentazione più fluida e meno

  pesante dal punto di vista dell’esperienza utente
                                                                    10



   AJAX
 Tutto il funzionamento lato client si basa su un “linguaggio”

   noto come JavaScript

 Senza il suo ausilio non sarebbe stato possibile tutto questo

 Ma JavaScript da solo non è sufficiente

 Ha bisogno di un altro “componente” che si occupa di tutta la

   parte fondamentale cioè della comunicazione lato server

 Questo componente si chiama XMLHttpRequest ed è una
                                                                  11
   classe che è stata sviluppata ad hoc per questo modello

   AJAX
 JavaScript è IL linguaggio di scripting per il Web
 La sua notorietà e la sua diffusione sono tali che ogni giorno
   milioni di pagine su internet girano grazie a questo linguaggio
 Questa diffusione è dovuta anche alla sua notevole semplicità
 E’ pienamente funzionante in tutti i browser esistenti
 JavaScript è un linguaggio di scripting lato client, nato con lo
   scopo di interagire con le pagine HTML
 Si posiziona normalmente all’interno delle pagine HTML
 E’ un linguaggio interpretato (ovvero il browser lo interpreta
   direttamente) e per questo non necessita di compilazione          12



   JavaScript
 XMLHttpRequest è il componente che si occupa del colloquio con
   il server web
 Si posiziona “dietro” all’interfaccia utente e svolge un ruolo
   fondamentale per il funzionamento degli applicativi in AJAX
 La prima versione di questo componente fu sviluppata da
   Microsoft, ed era in forma di ActiveX e si chiamava XMLHttp
 Venne molto impiegato per realizzare applicativi con il modello
   web chiamato del “frame nascosto”
 Veniva distribuito con la libreria nota con il nome di MSXML
 Le potenzialità erano notevoli, e tramite JavaScript aumentavano13


   JavaScript
 Vista la potenza di XMLHttp l’interesse nelle comunità di
   sviluppatori crebbero notevolmente verso questo componente
 Tuttavia questi era in forma di ActiveX quindi eseguibile solo in IE
 Per questo motivo gli sviluppatori del progetto open source
   Mozilla decisero di realizzare un porting di XMLHttp che non fosse
   in forma di ActiveX, e che quindi potesse girare in ogni browser
 Questo porting consentì di realizzare una libreria nota con il nome
   di XMLHttpRequest, che tramite una classe avente lo stesso
   nome, consentivano di realizzare questo livello di isolamento
 La realizzazione di questo porting diede vita alla vera era di AJAX14


   JavaScript
Modello Web Tradizionale


                               HTML, Images, CSS, JavaScript,                Data Response
                                           Data

                                                                             Data Request
                                      HTTP Request

                                                                                             Database
  Web Browser                                                   Web Server


   Modello Web AJAX


                  HTML, CSS                     Data Transfer                Data Response
      User                         AJAX
    Interface                     Engine
                  Javascript                   HTTP Request                  Data Request


                                                                Web Server                   Database
                                                                                                        15
                Web Browser

   AJAX
 Traffico Minimo
        Non si perde tempo ogni volta a ricaricare la parte grafica
         della pagina
        Il caricamento dell’interfaccia utente può richiedere
         qualche secondo inizialmente che viene poi ripagato dalla
         velocità di esecuzione dell’applicativo web
        La quantità effettiva di dati che viaggiano è molto ridotta in
         quanto composta da soli dati e non da parti inutili

                                                                          16



  AJAX
 Interfaccia Utente
        Grazie al supporto del linguaggio JavaScript l’applicativo
         web si arricchisce notevolmente rispetto al modello web
         tradizionale
        L’utente dispone di una serie di funzionalità molto simile
         alle funzionalità di un applicativo desktop
        Le parti dell’applicativo possono essere manipolate
         (drag&drop, effetti grafici)
        Si dispone delle funzionalità da tastiera
                                                                      17



  AJAX
 Possibilità di reingegnerizzazione
         Il modello di sviluppo web basato su AJAX si associa quasi
          sempre al modello di sviluppo basato su servizi
         Le funzionalità disponibili sull’applicativo vengono isolate
          su strati disponibili per il riuso (Web Services, Servizi WCF)
         Questo consente, se necessario, di modificare in parte (o
          volendo anche totalmente) la parte di interfaccia utente
          senza dover mettere più mano alla logica dell’applicativo
          (business logic)
                                                                           18



   AJAX
 Accessibilità
         In base a questa architettura modulare è possibile
          introdurre dei canoni di accessibilità maggiormente
          aderenti agli standard
         L’utenza può essere di diverso tipo e con diverse esigenze
         Quindi possono esserci anche più “interfacce utente” in
          base alla tipologia di utente che utilizza l’applicativo web



                                                                         19



   AJAX
 Abbiamo detto che AJAX è una tecnica di sviluppo web e non un
  linguaggio di sviluppo
 Quindi come tale necessita dell’impiego di diverse tecnologie:
         HTML/XHTML: per realizzare la struttura delle pagine
         CSS: per fornire stili e formattazioni grafiche
         DOM: per consentire l’accesso alle parti del documento
         XML/JSON: per realizzare lo scambio dei dati
         XSLT: per trasformare XML in XHTML (con l’ausilio dei CSS)
         XMLHttp/XMLHttpRequest: il vero motore di AJAX
         JavaScript: il linguaggio di scripting di AJAX               20



   AJAX

Contenu connexe

En vedette

EtnaDev 2016 - Application Insights
EtnaDev 2016 - Application InsightsEtnaDev 2016 - Application Insights
EtnaDev 2016 - Application InsightsRoberto Albano
 
Comprendere l'architettura service oriented
Comprendere l'architettura service orientedComprendere l'architettura service oriented
Comprendere l'architettura service orientedRoberto Albano
 
Microsoft Application Insights
Microsoft Application InsightsMicrosoft Application Insights
Microsoft Application InsightsRoberto Albano
 
Introduzione a Microsoft Azure
Introduzione a Microsoft AzureIntroduzione a Microsoft Azure
Introduzione a Microsoft AzureRoberto Albano
 
DevOps@Work 2017 - Azure Mobile Engagement
DevOps@Work 2017 - Azure Mobile EngagementDevOps@Work 2017 - Azure Mobile Engagement
DevOps@Work 2017 - Azure Mobile EngagementRoberto Albano
 
Cognitive Services & LUIS
Cognitive Services & LUISCognitive Services & LUIS
Cognitive Services & LUISMassimo Bonanni
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftMassimo Bonanni
 
DevOps@Work 2017 - Application insights more control, more power
DevOps@Work 2017 - Application insights more control, more powerDevOps@Work 2017 - Application insights more control, more power
DevOps@Work 2017 - Application insights more control, more powerRoberto Albano
 
Prove Viderekommen
Prove   ViderekommenProve   Viderekommen
Prove Viderekommenguest8e448c
 
Integrating Library Resources into Blackboard
Integrating Library Resources into BlackboardIntegrating Library Resources into Blackboard
Integrating Library Resources into BlackboardBritt Fagerheim
 
Server Side 2009
Server Side 2009Server Side 2009
Server Side 2009vaclav.lohr
 
SEO pro manažery
SEO pro manažerySEO pro manažery
SEO pro manažeryvaclav.lohr
 
School Presentation Scuola Statale 5° Circolo Didattico “G. Verdi”
School Presentation Scuola Statale 5° Circolo Didattico “G. Verdi”School Presentation Scuola Statale 5° Circolo Didattico “G. Verdi”
School Presentation Scuola Statale 5° Circolo Didattico “G. Verdi”Tiina Sarisalmi
 
Double Trouble
Double TroubleDouble Trouble
Double Troublegsterndale
 

En vedette (20)

EtnaDev 2016 - Application Insights
EtnaDev 2016 - Application InsightsEtnaDev 2016 - Application Insights
EtnaDev 2016 - Application Insights
 
Comprendere l'architettura service oriented
Comprendere l'architettura service orientedComprendere l'architettura service oriented
Comprendere l'architettura service oriented
 
Microsoft Application Insights
Microsoft Application InsightsMicrosoft Application Insights
Microsoft Application Insights
 
Introduzione a Microsoft Azure
Introduzione a Microsoft AzureIntroduzione a Microsoft Azure
Introduzione a Microsoft Azure
 
DevOps@Work 2017 - Azure Mobile Engagement
DevOps@Work 2017 - Azure Mobile EngagementDevOps@Work 2017 - Azure Mobile Engagement
DevOps@Work 2017 - Azure Mobile Engagement
 
Architettura web
Architettura webArchitettura web
Architettura web
 
Cognitive Services & LUIS
Cognitive Services & LUISCognitive Services & LUIS
Cognitive Services & LUIS
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie Microsoft
 
DevOps@Work 2017 - Application insights more control, more power
DevOps@Work 2017 - Application insights more control, more powerDevOps@Work 2017 - Application insights more control, more power
DevOps@Work 2017 - Application insights more control, more power
 
Prove Viderekommen
Prove   ViderekommenProve   Viderekommen
Prove Viderekommen
 
Integrating Library Resources into Blackboard
Integrating Library Resources into BlackboardIntegrating Library Resources into Blackboard
Integrating Library Resources into Blackboard
 
Third comeback report 4.8,2011
Third comeback report 4.8,2011Third comeback report 4.8,2011
Third comeback report 4.8,2011
 
Orivesi Countryside
Orivesi CountrysideOrivesi Countryside
Orivesi Countryside
 
Our School in Turkey
Our School in TurkeyOur School in Turkey
Our School in Turkey
 
Server Side 2009
Server Side 2009Server Side 2009
Server Side 2009
 
CoreyGerovac
CoreyGerovacCoreyGerovac
CoreyGerovac
 
SEO pro manažery
SEO pro manažerySEO pro manažery
SEO pro manažery
 
Cucumber
CucumberCucumber
Cucumber
 
School Presentation Scuola Statale 5° Circolo Didattico “G. Verdi”
School Presentation Scuola Statale 5° Circolo Didattico “G. Verdi”School Presentation Scuola Statale 5° Circolo Didattico “G. Verdi”
School Presentation Scuola Statale 5° Circolo Didattico “G. Verdi”
 
Double Trouble
Double TroubleDouble Trouble
Double Trouble
 

Similaire à Ajax

SmartClient by Isomorphic - Rich internet applications
SmartClient by Isomorphic - Rich internet applicationsSmartClient by Isomorphic - Rich internet applications
SmartClient by Isomorphic - Rich internet applicationsClaudio Bosticco
 
Applicazioni web based
Applicazioni web basedApplicazioni web based
Applicazioni web basedMarco Liverani
 
Javascript, il linguaggio (non solo) del web
Javascript, il linguaggio (non solo) del webJavascript, il linguaggio (non solo) del web
Javascript, il linguaggio (non solo) del webPierLuigiZavaroni1
 
Cefriel Della Valle Web 2.0 And Soa Bif
Cefriel Della Valle Web 2.0 And Soa BifCefriel Della Valle Web 2.0 And Soa Bif
Cefriel Della Valle Web 2.0 And Soa BifEmanuele Della Valle
 
Accessibilità Applicazioni Web
Accessibilità Applicazioni WebAccessibilità Applicazioni Web
Accessibilità Applicazioni WebRoberto Scano
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 
Introduzione a Internet
Introduzione a InternetIntroduzione a Internet
Introduzione a Internetdadahtml
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxGiovanni Cappellini
 
Applicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web ApiApplicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web ApiPietro Libro
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Fulvio Corno
 
Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Giorgio Carpoca
 
Web Project - LESSON 1
Web Project - LESSON 1Web Project - LESSON 1
Web Project - LESSON 1Yunikon Design
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAXTommaso Torti
 

Similaire à Ajax (20)

SmartClient by Isomorphic - Rich internet applications
SmartClient by Isomorphic - Rich internet applicationsSmartClient by Isomorphic - Rich internet applications
SmartClient by Isomorphic - Rich internet applications
 
Web services
Web servicesWeb services
Web services
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
 
Asp net (versione 1 e 2)
Asp net (versione 1 e 2)Asp net (versione 1 e 2)
Asp net (versione 1 e 2)
 
Applicazioni web based
Applicazioni web basedApplicazioni web based
Applicazioni web based
 
Javascript, il linguaggio (non solo) del web
Javascript, il linguaggio (non solo) del webJavascript, il linguaggio (non solo) del web
Javascript, il linguaggio (non solo) del web
 
Cefriel Della Valle Web 2.0 And Soa Bif
Cefriel Della Valle Web 2.0 And Soa BifCefriel Della Valle Web 2.0 And Soa Bif
Cefriel Della Valle Web 2.0 And Soa Bif
 
Accessibilità Applicazioni Web
Accessibilità Applicazioni WebAccessibilità Applicazioni Web
Accessibilità Applicazioni Web
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Introduzione a Internet
Introduzione a InternetIntroduzione a Internet
Introduzione a Internet
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
 
Applicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web ApiApplicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web Api
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...
 
Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3
 
Web Project - LESSON 1
Web Project - LESSON 1Web Project - LESSON 1
Web Project - LESSON 1
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
 
Web dynpro for abap 01
Web dynpro for abap 01Web dynpro for abap 01
Web dynpro for abap 01
 
Web 2.0 and Google Services
Web 2.0 and Google ServicesWeb 2.0 and Google Services
Web 2.0 and Google Services
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 

Ajax

  • 1.
  • 2.  AJAX sta per Asynchronous Javascript and XML  Molti pensano sia un linguaggio mentre invece è una tecnica  Esiste da molti anni, ma con altro nome e con altra forma  E’ il risultato e allo stesso tempo il fautore dello sviluppo del web nella forma che conosciamo come “Web 2.0”  Raggruppa diverse tecnologie e linguaggi per ottenere lo scopo principale, ovvero lo sviluppo web performante 2 AJAX
  • 3.  Dal 2000 in poi, il web ha subito una evoluzione sempre più notevole in termini di tecnologie  Le infrastrutture più capienti hanno creato i presupposti per uno sviluppo web più accurato e più complesso  Il web ha subito una evoluzione tale che oggi, con il concetto di web 2.0, possiamo dire che internet è diventata una vera e propria piattaforma applicativa 3 AJAX
  • 4.  Questa crescita passa per AJAX in maniera rilevante  Il termine AJAX (Asynchronous Javascript and XML) è stato coniato nel 2005 da Jesse James Garrett di Adaptive Path LLC  Garrett pubblicò un articolo che si chiamava “Ajax: A New Approach to Web Applications”  Questo articolo ancora oggi è disponibile http://www.adaptivepath.com/ideas/essays/archives/000385.php 4 AJAX
  • 5.  Garrett era dell’avviso che il divario tra le applicazioni tradizionali in locale e quelle web stesse sempre più diminuendo  Il modello citato era Google e l’articolo originale citava: Google Suggest and Google Maps are two examples of a new approach to web applications that we at Adaptive Path have been calling Ajax. The name is shorthand for Asynchronous JavaScript + XML, and it represents a fundamental shift in what’s possible on the Web. 5 AJAX
  • 6.  Da quel momento in poi la stessa rete ritenne valido il termine AJAX per indicare qualcosa che rappresentava il contesto evolutivo del web  Il numero di articoli e citazioni di questo termine aumentarono in maniera esponenziale  Le applicazioni, intese sempre più come rich client applications lato web, erano state identificate come prodotto di una elaborazione asincrona che avesse come attori principali Javascript e XML  In seguito, XML verrà spesso rimpiazzato con JSON 6 AJAX
  • 7.  Quando nel 1990 un certo Tim Berners-Lee ideò il WWW inteso come ragnatela di informazioni e siti web collegati tra loro attraverso link, non poteva immaginare questa evoluzione  Con l’evoluzione dei siti e l’introduzione di un linguaggio di scripting lato client così potente come Javascript, il web progredì in maniera velocissima  Le pagine web divennero ben presto pesanti, per la logica di funzionamento che prevedeva una richiesta e una risposta 7 AJAX
  • 8.  La risposta ottenuta dal server web era completa della parte grafica, che in pratica corrispondeva alla maggioranza del peso dei dati ricevuti dal client  L’idea di base fu quindi quella di disaccoppiare queste parti  La parte grafica, che era la parte rilevante, andava necessariamente staccata da quella dei dati, minoritaria  Questo fu possibile proprio grazie a Javascript, che consentiva una capacità di azione e interazione lato client notevole  I dati venivano richiesti al server e la comunicazione avveniva con l’ausilio di XML 8 AJAX
  • 9.  Tanti non sanno che AJAX è nato (come tecnica) moltissimi anni fa  L’anno di riferimento era il 1996 circa  Allora si usava la tecnica del “frame nascosto” per consentire una risposta veloce al minimo della interazione visiva tra client e server 9 AJAX
  • 10.  Il meccanismo era basato sulla presenza di un frame che si occupasse solo della logica di comunicazione da/verso il server  Un frame normalmente con larghezza o altezza zero e non ridimensionabile, veniva usato come broker di informazioni  Questo consentiva, tramite un linguaggio come Javascript e tramite il DOM, una rappresentazione più fluida e meno pesante dal punto di vista dell’esperienza utente 10 AJAX
  • 11.  Tutto il funzionamento lato client si basa su un “linguaggio” noto come JavaScript  Senza il suo ausilio non sarebbe stato possibile tutto questo  Ma JavaScript da solo non è sufficiente  Ha bisogno di un altro “componente” che si occupa di tutta la parte fondamentale cioè della comunicazione lato server  Questo componente si chiama XMLHttpRequest ed è una 11 classe che è stata sviluppata ad hoc per questo modello AJAX
  • 12.  JavaScript è IL linguaggio di scripting per il Web  La sua notorietà e la sua diffusione sono tali che ogni giorno milioni di pagine su internet girano grazie a questo linguaggio  Questa diffusione è dovuta anche alla sua notevole semplicità  E’ pienamente funzionante in tutti i browser esistenti  JavaScript è un linguaggio di scripting lato client, nato con lo scopo di interagire con le pagine HTML  Si posiziona normalmente all’interno delle pagine HTML  E’ un linguaggio interpretato (ovvero il browser lo interpreta direttamente) e per questo non necessita di compilazione 12 JavaScript
  • 13.  XMLHttpRequest è il componente che si occupa del colloquio con il server web  Si posiziona “dietro” all’interfaccia utente e svolge un ruolo fondamentale per il funzionamento degli applicativi in AJAX  La prima versione di questo componente fu sviluppata da Microsoft, ed era in forma di ActiveX e si chiamava XMLHttp  Venne molto impiegato per realizzare applicativi con il modello web chiamato del “frame nascosto”  Veniva distribuito con la libreria nota con il nome di MSXML  Le potenzialità erano notevoli, e tramite JavaScript aumentavano13 JavaScript
  • 14.  Vista la potenza di XMLHttp l’interesse nelle comunità di sviluppatori crebbero notevolmente verso questo componente  Tuttavia questi era in forma di ActiveX quindi eseguibile solo in IE  Per questo motivo gli sviluppatori del progetto open source Mozilla decisero di realizzare un porting di XMLHttp che non fosse in forma di ActiveX, e che quindi potesse girare in ogni browser  Questo porting consentì di realizzare una libreria nota con il nome di XMLHttpRequest, che tramite una classe avente lo stesso nome, consentivano di realizzare questo livello di isolamento  La realizzazione di questo porting diede vita alla vera era di AJAX14 JavaScript
  • 15. Modello Web Tradizionale HTML, Images, CSS, JavaScript, Data Response Data Data Request HTTP Request Database Web Browser Web Server Modello Web AJAX HTML, CSS Data Transfer Data Response User AJAX Interface Engine Javascript HTTP Request Data Request Web Server Database 15 Web Browser AJAX
  • 16.  Traffico Minimo  Non si perde tempo ogni volta a ricaricare la parte grafica della pagina  Il caricamento dell’interfaccia utente può richiedere qualche secondo inizialmente che viene poi ripagato dalla velocità di esecuzione dell’applicativo web  La quantità effettiva di dati che viaggiano è molto ridotta in quanto composta da soli dati e non da parti inutili 16 AJAX
  • 17.  Interfaccia Utente  Grazie al supporto del linguaggio JavaScript l’applicativo web si arricchisce notevolmente rispetto al modello web tradizionale  L’utente dispone di una serie di funzionalità molto simile alle funzionalità di un applicativo desktop  Le parti dell’applicativo possono essere manipolate (drag&drop, effetti grafici)  Si dispone delle funzionalità da tastiera 17 AJAX
  • 18.  Possibilità di reingegnerizzazione  Il modello di sviluppo web basato su AJAX si associa quasi sempre al modello di sviluppo basato su servizi  Le funzionalità disponibili sull’applicativo vengono isolate su strati disponibili per il riuso (Web Services, Servizi WCF)  Questo consente, se necessario, di modificare in parte (o volendo anche totalmente) la parte di interfaccia utente senza dover mettere più mano alla logica dell’applicativo (business logic) 18 AJAX
  • 19.  Accessibilità  In base a questa architettura modulare è possibile introdurre dei canoni di accessibilità maggiormente aderenti agli standard  L’utenza può essere di diverso tipo e con diverse esigenze  Quindi possono esserci anche più “interfacce utente” in base alla tipologia di utente che utilizza l’applicativo web 19 AJAX
  • 20.  Abbiamo detto che AJAX è una tecnica di sviluppo web e non un linguaggio di sviluppo  Quindi come tale necessita dell’impiego di diverse tecnologie:  HTML/XHTML: per realizzare la struttura delle pagine  CSS: per fornire stili e formattazioni grafiche  DOM: per consentire l’accesso alle parti del documento  XML/JSON: per realizzare lo scambio dei dati  XSLT: per trasformare XML in XHTML (con l’ausilio dei CSS)  XMLHttp/XMLHttpRequest: il vero motore di AJAX  JavaScript: il linguaggio di scripting di AJAX 20 AJAX