formazione-umbria

Garanzia Giovani programma promosso dall’ Unione Europea

formazione umbriaIl programma Garanzia Giovani é finalizzato ad assicurare precise certezze ai giovani per il proprio futuro relativamente a istruzione e lavoro. L’obiettivo prioritario é che ogni persona dai 15 ai 29 anni dovrà riceve una opportunità per facilitare il suo inserimento nel mondo del lavoro. Possono aderire giovani tra i 15 e i 29 anni che hanno abbandonato la scuola, non frequentano corsi di formazione, non sono iscritti all’ università e non lavorano, ovvero disoccupati ai sensi del D.Lgs. 181/2000. Per aderire basta fissare un appuntamento ai centri per l’impiego oppure collegarsi al portale LAVORO per TE. Un primo colloquio mirato a estrapolare istruzione e aspettative prima di firmare il patto di servizio con successiva profilazione e ottimizzazione del cv per cogliere le opportunità più performanti. Gli strumenti previsti per il progetto garanzia giovani sono il voucher il tirocinio formativo, reinserimento, eures, bonus occupazionali, sostegno all’ autoimprenditorialità. Maggiori informazioni all’ indirizzo http://www.provincia.perugia.it/life. Per info inviare mail a life@provincia.perugia.it o contattare ceo di Umbriaway Consulting

Annunci
formazione-umbria
formazione-umbria

Formazione a Gualdo Tadino

formazione-umbriaUn gruppo facebook all’ indirizzo https://www.facebook.com/Cpia-Gualdo-Tadino-364341897095217/  e sito internet http://www.istitutocomprensivoperugia12.gov.it/istituzione-del-cpia-di-perugia.html per il CPIA di Gualdo Tadino. CPIA sta per centro provinciale per l’istruzione degli adulti nel comprensorio di PG. A GUALDO TADINO la sede del CPIA si trova nella sede della polizia municipale in piazza del mercato. Le attività sono finalizzare a erogare certificazioni di frequenza in ambiti svariati che spaziano dall’ informatica ai corsi di lingue. Inoltre sono attivi corsi di italiano e licenze di scuola media serale per gli stranieri. La scelta formativa é molto vasta e agli indirizzi segnalati in incipit é possibile reperire informazioni oltre a contattare il CEO di Umbriaway Consulting.

castello di colle
formazione

Umbriaway Consulting e le risposte di Ajax

castello di colleIn questa sessione di allenamento Umbriaway Consulting prenderà in considerazione le proprietà responseText e responseXML. Abbiamo visto come le richieste asincrone vengono inoltrate ma come risponde il server? In che modo le informazioni vengono masticate digerite e restituite al client? Sono due le proprietà coinvolte in quest processo responseText e responseXML entrambe apparteneneti all’ oggetto XMLHTTPRequest. Vediamo quindi in dettaglio responseText e responseXML. E’ bene subito ricordare che quando il completamento di stato nella proprietà readystatechange passa da 0 a 4 entrambe le proprietà sopra menzionate sono pronte e operative per restituire i dati. Ma come possiamo accedere a queste due proprietà per restituire i dati? La proprietà responseText cerca di rappresentare le informazioni restituite dal server come stringa di testo. Ovviamente se la chiamata XMLHTTPRequest riporta un errore o non é ancora stata inviata, responseText avrà un valore null.

Si osservi nuovamente la funzione di callback prototipo:

function responseAjax() {
if(myRequest.readyState ==4) {
if (myRequest.status ==200) {
dichiarazioni
} else {
invia messaggio errore per qualsiasi altra risposta HTTP
alert(“errore: ” +myRequest.statusText);
}
}
}

A questo punto aggiungiamo una dichiarazione di programma all’ IF:

function responseAjax() {
if(myRequest.readyState ==4) {
if (myRequest.status ==200) {
alert(“Il server dice: ” +myRequest.responseText);
} else {
invia messaggio errore per qualsiasi altra risposta HTTP
alert(“errore: ” +myRequest.statusText);
}
}
}

in questo semplice esempio lo script apre una finestra di avvertimento per visualizzare il testo restituito dal server. La riga

alert(“Il server dice: ” +myRequest.responseText);

prende il testo restituito dalla routine lato server e la allega alla stringa il server dice prima di presentarla in una finestra di avvertimento JS. Si osservi questo esempio che usa un semplice script PHP lato server

<?php echo “hello Ajax caller!”;?>

Una chiamata XMLHTTPRequest eseguita con successo a questo file produce la proprietà responseText contenente la stringa Hello Ajax caller!; inoltre la funzione di callback genera la finestra di dialogo. La proprietà responseText é di sola lettura, quindi non é possibile manipolare il suo valore prima che venga copiato in un’altra variabile. Poiché la proprietà responseText contiene una semplice stringa di testo é possibile modificarla utilizzando uno qualsiasi dei metodi JS per le stringhe. Alcuni metodi disponibili sono charAT (numero) che seleziona il singolo carattere all’ interno della stringa nella posizione specificata). IndexOf (sottostringa) che trova la posizione in cui inizia la sotto stringa specificata; lastIndexOf(sottostringa) che trova l’ultima occorrenza della sotto stringa all’ interno della stringa, substring (inizio, fine) ottiene la parte della stringa specificata; toLowerCase() converte la stringa in carateri minuscoli, toUpperCase() converte la stringa in lettere maiuscole.

Adesso prenderemo in esame la proprietà responseXML. Si supponga ora di disporre del seguente script PHP:

<?php
header(‘Content-Type: text/xml’);
echo “<? xml version=\”1.0\” ?> <greeting>
Hello Ajax caller!</greeting>”;
?>

sebbene sia uno script molto breve vediamolo dettagliatamente. La prima riga aggiunge un header HTTP ai dati restituiti.Prima di inviare una istruzione header () occorre assicurarsi che lo script PHP non visualizzi niente, neanche spazi vuoti e ritorni a capo, diversamente si verificherà un errore.

L’header restituito é la coppia parametro/valore

Content-Type: text/xml

che annuncia che l’oggetto XMLHTTPRequest si aspetta che i dati provenienti dal server verranno formattati come XML. La riga successiva é una dichiarazione che stampa a video questo semplice ma completo documento XML:

<?xml version=”1.0″ ?>
<greeting>
Hello Ajax caller!
</greeting>

da notare che é necessario aggiungere il carattere di escape \ alle virgolette presenti in una stringa racchiusa tra virgolette per assicurare che il significato della dichiarazione non sia ambiguo. Questa operazione viene eseguita appunto con la barra rovesciata, di conseguenza il comando PHP:

echo “<img src=\”picture.gif\”>”;

produce come output:

<img src=”picture.gif”>

Quando la chiamata al server é stata completata, il documento XML viene caricato nella proprietà responseXML dell’oggetto XMLHTTPRequest. A questo punto é possibile accedere al documento XML attraverso i metodi e le proprietà del DOM di JavaScript.

Una ottima proprietà nel DOM di JavaScript é getElementsByTagName(). che crea un array JS di tutti gli elementi con un particolare nome di TAG.E’ quindi possibile accedere agli elementi di questi array attraverso le normali dichiarazioni JS:

var myElements = object.getElementsByTagName(‘greeting’);

questa riga crea l’array myElements e inserisce al suo interno tutti gli elementi il cui nome di tag é greeting. Come per qualsiasi altro array é possibile scoprire la lunghezza dell’ armadio, il numero di elementi con il numero di tag dichiarato utilizzando la proprietà lenght.

myElements.length

Se lo si desidera é possibile accedere individualmente a un particolare elemento; il primo elemento il cui nome di tag é greeting é accessibile come myElements[0], il secondo se esiste come myElements[1] etc. E’ importante notare che la proprietà responseXML non contiene solo una stringa che forma una rappresentazione di testo nel documento XML, come nel caso della proprietà response.text. Per contro tutti i dati e la struttura gerarchica del documento XML vengono memorizzati come oggetto compatibile con il DOM. Analizzeremo ora uno script che genera un alert di avvertimento utilizzando il getRlementsByTagName().

function responseAjax() {
if(myRequest.readyState==4) {
if(myRequest.status==200) {
var greetNode = http.responseXML
get ElementsByTagName(“greeting”)[0];
var greetText = greetNode.childnodes[0];
nodeValue;
alert(“Greeting text: ” + greetText);
} else {
alert(“An error has occured: ” + myRequest.statusText);
}
}
}

Dopo le solite verifiche sulle proprietà readyState e status il codice localizza l’elemento richiesto da responseXML utilizzando il metodo getElementsByTagName() e poi utilizza childNodes[0].nodeValue per estrarne il contenuto di testo da questo elemento, visualizzando infine il testo restituito in una finestra di alert o di avvertimento JS. E’ anche possibile entrare direttamente nei singoli elementi dell’ array scrivendo l’istruzione:

var theElement = object.getElementsByTagName(‘greeting’)[0];

formazione

Umbriaway Formazione e Ajax la sfida continua

ajax_callbackPer monitorare lo stato del server, ricorda Umbriaway Consulting, abbiamo esaminato una proprietà importante che é readystatechange che può avere cinque valori diversi. Il nostro obiettivo é conoscere i progressi della richiesta Ajax in corso. Per conoscere lo stato della richiesta inoltrata abbiamo diversi valori: con zero il server ci risponde che il tutto non é stato inizializzato, con 1 sappiamo che la richiesta é in caricamento, con due la richiesta é stata caricata, con tre vi é una interattività di fondo con 4 il processo viene cosnsiderato completato. Gli stati di avanzamento va da se che partono da zero e vanno avanti quando lo stato diventa tre significa che mi viene indicato che l’oggetto é sufficientemente progredito da consentirmi di interagire anche se il processo non é stato completato con lo stato successivo, il quattro. Gli stati possono anche essere saltati a seconda degli oggetti e del caricamento, in ogni caso il quattro sta indicare che l’oggetto XMLHTTPrequest é pronto per l’utilizzo. Per controllare lo stato di avanzamento esiste anche il codice di stato della risposta del server il famoso 200 e lo vedremo in seguito. In uno dei tanti portali di Umbriaway Consulting abbiamo visto la funzione di callback responseAjax() che ora andremo a costruire in dettaglio. Quando viene aggiornato lo stato di avanzamento readystatechange viene chiamatra questa funzione, in ogni caso la richiesta é da considerarsi completamente completata quando il tutto arriva a 4. Questo in genere viene gestito con una istruzione condizionale IF

function responseAjax () {
//mi interessa solo il 4 di readystate per lo stato completato
if (myRequest.readyState ==4) {
dichiarazioni esecuzione programma
}
}

a questo punto mi interessa controllare e gestire anche lo stato 200 in corrispondenza dello stato 4 usando la proprietà status di XMLTHHTPRequest e statusText che contiene la reason phrase.

function responseAjax () {
if (myRequest.readyState ==4) {
//se la risposta del server é OK
if(myRequest.status==200){
dichiarazioni
} else {
//invia un msg di errore per altre risposte HTTP
alert (“un errore si é verificato: ” + myRequest.statusText);
}
}
}

Questo codice introduce nella dichiarazione if una clausola else qualsiasi altra risposta diversa dal 200 del server provoca l’esecuzione dei contenuti di questa clausola else, aprendo il testo di avvertimento contenente il testo della reason phrase restituita dal server.

Come é possibile quindi chiamare la funzione callAjax() dalla pagina HTML? Ecco un esempio. Di seguito é riportato il codice per un modulo semplificato in una pagina HTML:

<form name=”form1″>
Name:<input type=’text’ name=’myname’><br>
Tel: <input type=’text’ name=’telno’><br>
<input type=’submit’>
</form>

La funzione verrà lanciata attraverso l’impiego del gestore di eventi onBlur di un campo per l’inserimento del testo in un modulo:

<form name=”form1″>
Name:<input type=’text’ name=’myname’ onBlur=’callAjax()’><br>
Tel: <input type=’text’ name=’telno’><br>
<input type=’submit’>
</form>

Il gestore di eventi onBlur viene attivato quando l’utente esce dal campo in questione. In questo caso quando l’utente lascia il campo la funzione callAjax() verrà eseguita creando una istanza dell’ oggetto XMLHTTPRequest e producendo una richiesta asincrona al server per

myserverscript.php?surname=Smith

Possiamo performare meglio questa funzione apportando una leggera modifica al codice della funzione callAjax()? Certo che si! Quindi

function callAjax() {
//dichiara una variabile per contenere alcune info da passare al server
var lastname = document.form1.myname.value;
….. ora possiamo osservare che quando l’utente esce dal campo myname del modulo, il valore che ha inserito viene passato al server attraverso la richiesta asincrona. Una simile chiamata può, per esempio, controllare un database per verificare l’esistenza della persona con quel nome e in caso di esito positivo restituire le informazioni per riempire altri campi del modulo. Il risultato sempre per quanto riguarda l’utente é che i campi restanti magicamente si riempiranno di dati prima dell’ invio e del completamento del modulo.  Qui abbiamo rimarcato quelli che sono i concetti base di Ajax ossia come XMLHTTPRequest comunica con il server, compreso l’invio di richieste asincrone, il monitoraggio dello statoi di avanzamento durante l’elaborazione del server che processa le istruzioni e l’esecuzione di una funzione di callback. In uno dei successivi approfondimenti su Ajax vedremo come vengono gestiti i dati restituiti dalla richiesta al server, la fase di RESPONSE.

colle di nocera umbra
formazione

Grafica vettoriale Colle di Nocera Umbra e il protocollo di trasferimento dell’ ipertesto HTTP

colle-di-nocera-umbra Come sappiamo da scritti precedenti di grafica vettoriale Colle di Nocera Umbra il browser é un client HTTP e il server della pagina web richiesta é ovviamente un server HTTP. HTTP ha un set di regole che é importante conoscere anche perché Ajax abbiamo sottolineato interroga il server per eseguire in modalità asincrona i codici script. Questo set di regole di HTTP definiscono con quali modalità avvengono i trasferimenti di dati tra server e client.Grafica vettoriale Colle di Nocera Umbra sottolinea che con le informazioni contenutistiche legate a un concetto come HTTP si possa generare una sorta di prolissa oipera letteraria, cosa non pertinente per questo posto che si limiterà a indicare i codici generati da HTTP nel corso delle richieste inoltrate dai client. In genere le richieste HTTP hanno sempre lo stesso schema: contengono una riga di comando, opzionalmente contengono diverse righe di intestazione, una riga vuota, opzionalmente un corpo del messaggio. La riga di apertura viene scomposta in tre parti, il nome del metodo, il percorso della risorsa server necessaria e la versione HTTP utilizzata. Un esempio tipico potrebbe essere: GET /pinkodir/testpage.html HTTP/1.0. In questa riga di comando si chiede al server di recuperare un particolare tipo di risorsa localizzata nella dir indicata. Nelle righe di intestazioni vengono inserite anche info legate al tipo di browser di chi chiede cosa con il parametro User-Agent, in queste righe poosso anche ordinare al server di restituire solo un particolare tipo di dati come testo o html e questo si ottiene inserendo l’istruzione ACCEPT per esempio: Accept: text/plain, text/html. I metodi di richiesta HTTP comprendono i metodi post, get, put, delete e head. Le richieste GET e POST sono le più interessanti per Ajax. https-colle-nocera-umbraQuando un server risponde con una riga del tipo HTTP/1.0 200 OK significa che tutto il processo ha portato un esito positivo e che il cerchio finalmente si chiude ma non é sempre cos’, in questo caso il codice 200 indica per convenzione successo ma esistono innumerevoli altri casi. Codice 204 entra in scena quando viene trovata la risorsa ma non ci sono contenuti. Il codice 301 indica che la risorsa é stata spostata su altro URI. Il codice 401 chiede una autenticazione da parte dell’ utente. Con il codice 403 il server ci indica che la richiesta é stata ripudiata e che vie é stato un rifiuto. Il famoso codice 404 ci dice che la pagina non esiste sul server. Con il codice 408 si sottolinea una sorta di time out, il server non ha avuto tempo per esaudire i desideri del client e infine con il codice 500 server error si sottolinea come uno script malfunzionante abbia creato disfunzioni al server. Per un elenco completo grafica vettoriale Colle di Nocera Umbra rimanda sempre alla bibbia sacra W3C.