• Non ci sono risultati.

ajax A. Ferrari

N/A
N/A
Protected

Academic year: 2021

Condividi "ajax A. Ferrari"

Copied!
15
0
0

Testo completo

(1)

A. Ferrari

ajax

(2)

A. Ferrari

definizione

o Asynchronous JavaScript and XML (AJAX)

o non è un linguaggio o non è una tecnologia

o è un termine che descrive un "nuovo" approccio all'utilizzo di diverse

tecnologie esistenti, compresi: HTML, CSS, JavaScript, DOM, XML, XSLT e l'oggetto XMLHttpRequest

o con AJAX, le applicazioni web possono eseguire aggiornamenti rapidi e incrementali dell'interfaccia utente senza ricaricare nel browser l'intera pagina

o questo rende l'applicazione più performante e più reattiva alle azioni dell'utente

https://www.w3schools.com/js/js_ajax_intro.asp

(3)

A. Ferrari

AJAX

o AJAX è uno strumento per la realizzazione di applicazioni web interattive (Rich Internet Application)

o la tecnologia AJAX si basa su uno scambio di dati in background fra web browser e server, che consente

l'aggiornamento dinamico di una pagina web senza esplicito ricaricamento da parte dell'utente

o la richiesta è asincrona: non si deve attendere che sia ultimata per effettuare altre operazioni

o normalmente le funzioni richiamate sono scritte in JavaScript o AJAX è una tecnica multi-piattaforma

(4)

A. Ferrari

caratteristiche

o AJAX sfrutta l’oggetto XMLHttpRequest

o offre la possibilità di interpretare e lavorare con i documenti XML

o reso popolare da Google, a partire dal 2005

o utilizzato in Google Maps, Gmail, Amazon ...

o il vantaggio principale di AJAX è la grande velocità alla quale un'applicazione risponde agli input

dell'utente

(5)

A. Ferrari

richiesta HTTP

o la richiesta HTTP al server utilizza un'istanza di una classe

o questa classe è stata introdotta originariamente in Internet Explorer come oggetto ActiveX e si chiamava XMLHTTP

o successivamente Mozilla, Safari e altri browser hanno implementato la classe XMLHttpRequest, che supporta gli stessi metodi e le

stesse proprietà della classe di Microsoft

o come fare:

o http_request = new XMLHttpRequest();

(6)

A. Ferrari

definire come gestire la risposta inviata dal server

o è necessario comunicare all'oggetto XMLHttpRequest quale funzione JavaScript elaborerà il codice XML

o si assegna alla proprietà onreadystatechange dell'oggetto la funzione JavaScript

o http_request.onreadystatechange = nomeFunzione;

o in questo modo si sta assegnando un riferimento alla funzione, non la si sta ancora chiamando

(7)

A. Ferrari

inviare la richiesta al server

o per inviare la richiesta bisogna chiamare i metodi open() e send()

http_request.open('GET', 'http://www.nomeserver.org/qualsiasi.file', true);

http_request.send(null);

o open(-,-,-)

o parametro 1: metodo : GET, POST … (in lettere MAIUSCOLE)

o parametro 2: URL (non è possibile chiamare pagine che si trovino su un dominio differente da quello in cui si trova la pagina corrente) o parametro 3: true per richiesta asincrona, false sincrona

o send()

o il parametro è costituito dai dati che si vogliono inviare al server se la richiesta è di tipo POST

(8)

A. Ferrari

gestire la risposta del server

o la funzione deve controllare lo stato della richiesta

o se lo stato ha un valore di 4, significa che la risposta è stata interamente ricevuta

if (http_request.readyState == 4) {

// tutto ok, la risposta è stata ricevuta } else {

// non ancora pronto }

o necessario controllare anche il codice di stato della risposta http:

il codice 200 è ok

if (http_request.status == 200) { // bene!

} else {

// problema nella richiesta }

(9)

A. Ferrari

accedere ai dati ricevuti

o http_request.responseText

o restituisce la risposta sotto forma di stringa di testo

o http_request.responseXML

o restituisce la risposta sotto forma di oggetto XMLDocument che si può navigare tramite le funzioni DOM.

(10)

A. Ferrari

cosa fare con i dati ricevuti

o selezionare un elemento della pagina

o getElementById(string)

o è un metodo del DOM che permette di selezionare un elemento mediante il suo id

o modificare il valore dell’elemento

o innerHTML

o proprietà che permette di ottenere o modificare il testo e le caratteristiche di un nodo

(11)

A. Ferrari

client <> AJAX <> server

(12)

A. Ferrari

getElementById esempio d’uso

o esempio

function cambiaColore(nuovoColore) {

elem = document.getElementById("paragrafo1");

elem.style.color = nuovoColore;

}

(13)

A. Ferrari

innerHTML

o la proprietà innerHTML permette di ottenere o

modificare il testo e le caratteristiche di un nodo

(14)

A. Ferrari

innerHTML - esempio

o Cambiare dinamicamente un link

function cambiaLink() {

document.getElementById('mioLink').innerHTML=“sito";

document.getElementById(‘mioLink').href="http://www.sito.com";

document.getElementById(mioLink').target="_blank";

}

(15)

A. Ferrari

esempi

o esempio 01

o visualizzazione di dati presenti sul server in un file di testo

o esempio 02

o analogo al precedente ma richiedendo un file XML o esempio 03

o uso di innerHTML o esempio 04

o tooltip

Riferimenti

Documenti correlati

Ottenere pelli le cui proprietà merceologiche sono paragonabili o addirittura superiori a quelle ottenibili con metodi tradizionali;. Realizzare sulle pelli una resa di

1) il punto di saturazione totale a cui corrisponde l'umidità di saturazione totale U st. E' la situazione, corrispondente per esempio al periodo immediatamente successivo ad

La reazione tra fenolo e acetone (D), in ambiente acido, procede invece attraverso una sostituzione elettrofila aromatica di due fenoli su una stessa molecola di acetone.. La

 What is the server process that handles the AJAX request and issues the response. • Some kind of URL (use a

Per ottenere la funzione y  log 2 x con Geogebra abbiamo sfruttato la quarta proprietà dei logaritmi, utilizzando l’unico tipo di logaritmo presente tra le funzioni di

Un modo diverso è quello di prendere la prima carta sul mazzo e metterla sul tavolo; passare poi in rassegna le altre carte, dividendole in due mazzetti: a sinistra della prima

Programmare Ottenere Python Primi passi Tipi dati Funzioni Approfondimenti.. Un’introduzione

– Analisi della potenzialità residua di un impianto di stazione mediante simulazione dell’utilizzo – Ingegneria Ferroviaria, Luglio - Agosto 2005;.. [25] De