L'activitat avaluativa referida a aquesta unitat formativa tracta sobre els continguts relatius a un dels llenguatges de guió més importants utilitzats actualment: javaScript, que a més està designat per la W3C com un dels estàndards que s'agrupen sota la denominació "HTML5".
Així, els continguts d'aquesta unitat formativa s'aplicaran sobre la base ja realitzada a la fase de desenvolupament anterior (sobre HTML5 i CSS3), dotant-la d' interactivitat i de connectivitat amb bases de dades (a través d'AJAX i PHP). Per això, en alguns apartats (com el referit als mapes de googleMaps, parts del formulari o l'apartat dedicat al vídeo i àudio) seran substituïts i/o millorats significativament afegint codi i funcionalitats de javaScript i jQuery, que aporta més potència, més control i sobretot més solidesa per assegurar la compatibilitat entre navegadors. Al mateix temps, en la majoria dels casos s'ampliaran seccions i s'afegiran noves pàgines per incorporar les funcionalitats que es detallaran a la taula següent.
És important remarcar que gran part dels continguts d'aquesta unitat formativa (variables, condicionals, bucles, funcions, arrays, events, objectes) s'utilitzaran a la gran majoria de les activitats que es desenvoluparan, però no es plantegen en cap exercici específic de manera individual, ja que la potència de qualsevol llenguatge de programació resideix en la seva utilització conjunta de la manera més efectiva possible.
En les activitats d'aquesta segona fase de desenvolupament s'hauran de tractar una sèrie de tècniques i/o funcionalitats que s'enumeren a continuació:
Característiques bàsiques incloses a les activitats: | Contingut relacionat: |
---|---|
17- Qualsevol acció o comportament s'ha d'indicar quan o com s'inicia (al fer clic, doble clic, col•locar el cursor a sobre, prémer una tecla…) | events (onclick, onload, onmouseover, onkeyup) |
18- Canvi de les propietats dels elements (color, posició, mida, display, opacitat, color, marges, padding entre d'altres amb javaScript). | .style .css |
19- Animació de propietats (canvi de les propietats amb animació). | animation |
20- Gestió de l'atzar (per aconseguir que l'ordre dels elements, la seva aparença o qualsevol comportament no sigui sempre el mateix). | Math.random Math.ceil / Math.floor |
21- Gestió d'imatges (canviar una imatge per una altra o afegir imatges dinàmicament –sense que estiguin incloses inicialment al document-). | attr .html |
22- Gestió del temps (accions que s'executen automàticament cada x segons de manera contínua). | setInterval / clearInterval |
23- Càrrega de dades des d'una base de dades o des de fitxers XML. El contingut (text, imatges, vídeos…) es recull d'una base de dades. Si prové d'una base de dades MySQL, es realitza a través de PHP, si és un fitxer XML la lectura és gairebé directa). |
$.ajax Tipus de dades (xml, json, string…) / Success |
24- Intercanvi de dades amb JSON (en javaScript i PHP). | json_decode/json_encode |
25- Gestió de dades a través d'arrays (llistes o matrius). Habitualment s'utilitzen per introduir les dades llegides en el pas anterior i posteriorment poder manipular-les ràpidament. |
Estructura de dades [a,b] push / pop / join / indexOf length i bucles |
26- Creació de contingut dinàmic. Tant el contingut, com l'estructura (llegida externament en els passos anteriors) es visualitzen a través de JavaScript. Així, inicialment el document html és buit. |
html empty prepend / append before / after |
27- Anàlisi de les dades introduïdes als formularis i el seu posterior procés d'enviament pel seu enregistrament dins d'una base de dades. | Comunicació de dades des de javaScript a PHP |
28- Enregistrament i recuperació de dades utilitzant 'localStorage'. | localStorage |
29- Personalització total de mapes de Google utilitzant l'API (v3) de Google (canvi d'aspecte, dels controls, addicció de marcadors, control d'events, propietats i mètodes existents). | Inicialització de l'API / Variables (propietats) / Funcionalitats (mètodes) |
30- Utilització de l'element CANVAS (opcional). | canvas / getContext |
31- Gestió i control d'elements de vídeo i àudio vinculant dinàmicament elements de vídeo no existents inicialment, modificar les seves funcions i creació personalitzada de barra de control (play, stop, pause, volum, barra). | play / pause vinculació amb src currentTime / duration |
32- Control del teclat (detecció de tecles i tecles especials). | keydown / keyCode |
33- Seria positiu incloure el desenvolupament d'una galeria de recursos (imatges, vídeos i/ àudio) realitzada íntegrament des de zero amb javaScript. | Diversos temes del contingut |
34- Gestió de dates (càlcul de dates, temps entre dates, calendaris). | objecte date |
La majoria d'apartats (excepte en aquells que s'indiqui el contrari) van ser creats amb HTML5 i CSS3 en la fase de desenvolupament anterior, corresponents a la unitat formativa (UF1841). Així, en aquesta unitat formativa s'ampliaran, modificaran o substituiran funcions de manera total o parcial utilitzant codi del llenguatge de programació javaScript.
A causa de la naturalesa del contingut de la unitat formativa dedicada a javaScript (UF1842), cadascun dels ítems d'informació del contingut no es plantegen individualment en una activitat de manera aïllada, ja que realment en la combinació de les funcionalitats i components de javaScript és on resideix la potència de qualsevol llenguatge de programació. Així mateix, també és on sorgeixen tots els dubtes i problemes dels alumnes i és on podem trobar el punt central on s'ha de centrar l'aprenentatge.
En aquesta segona fase de desenvolupament el client desitja afegir apartats nous i redissenyar el funcionament dels ja existents amb l'objectiu d'ampliar la interactivitat i el feedback entre el contingut i l'usuari. També desitja la possibilitat que una gran part del contingut de la web tingui un caràcter dinàmic (que vagui canviant segons la informació extreta d'una base de dades). D'aquesta manera el client pot canviar la informació en qualsevol moment, de la mateixa forma que qualsevol canvi d'estat o disponibilitat actual de qualsevol apartament es pot mostrar a la web de manera immediata.
Tot el moviment de dades i usuaris s'emmagatzemarà en una base de dades de tipus MySQL (UF1845) gestionada amb PHP (UF1844) i comunicada amb javaScript a través d'AJAX i el format de dades JSON.
Així, tots els ítems de contingut del curs enumerats a la pàgina anterior estan agrupats en una sèrie d'activitats interactives. En cadascuna d'aquestes activitats s'haurà d'integrar l'estructura i codi javaScript dintre de l'estructura HTML5 existent, creada a la fase de desenvolupament anterior, o bé crear-la des de zero en el cas que es tracti d'un nou apartat (com és el cas dels dos darrers "Cercador" i "Ubicacions").
En tots els apartats existeixen continguts del curs que s'hauran d'aplicar a la gran majoria de les ocasions, ja que representen la base de javaScript:
Així, per a la realització d'aquest exercici s'utilitzaran els següents continguts del curs:
Qui som?
En aquest apartat les millores se centren en la utilització d'events de tipus "click", la utilització d'animacions (amb la funció "animate" de javaScript) per mostrar informació i la creació de codi HTML amb javaScript per la creació de contingut de forma dinàmica a través de les peticions de l'usuari.
En aquest apartat es tractaran els següents continguts de la unitat formativa:
En aquest apartat substituirem tots els events d'HTML5 pels propis de javaScript per mostrar la presentació de la informació d'una manera interactiva, ja sigui a través d'events de ratolí de tipus "click" o "rollover" (passar per sobre), al mateix temps que es tracten les funcionalitats de canvi de propietats dels objectes presentats en pantalla, escriptura dinàmica a través de la informació recollida d'un fitxer extern XML i la modificació de propietats utilitzant petites animacions interactives.
L'apartat que a la fase de desenvolupament anterior s'anomenava "Ofertes" es modifica pel nom "Els nostres apartaments". El nou contingut serà molt semblant a l'anterior respecte a la seva naturalesa (ja que estarà format per vídeos i àudios), però serà molt diferent en referència a la seva organització i funcionament intern, ja que els recursos no estaran ubicats al document web, sinó que seran recollits d'una carpeta del servidor quan l'usuari ho requereixi.
Continguts del curs relacionats:
Al mateix temps, serà imprescindible el control de múltiples elements de vídeo (perquè en cap moment es reprodueixen dos vídeos al mateix temps. Així, si l'usuari prem "Play" en un vídeo, qualsevol altre element de vídeo o àudio que s'estigués reproduint-se en aquest moment s'hauria d'aturar).
Des de l'apartat "Els nostres apartaments" es pot accedir o bé al "Cercador d'apartaments" o bé al cercador manual d'"Ubicacions" a través del mapa de la teva ciutat.
Així, en aquest html no existirà cap tipus d'informació estàtica, sinó que aquesta es recollirà de la base de dades, es gestionarà a través d'arrays interns i es visualitzarà únicament la informació que l'usuari demandi a través de diferents sistemes de cerca (per ciutat, per dates, per preu...)
Perquè l'usuari pugui definir els paràmetres de cerca s'utilitzaran diferents elements de tipus <input> (com checkbox, select, radiobutton, etc..) Aquests elements s'ompliran d'informació, seran controlats i respondran als events de javaScript.
Posterior a la cerca, l'apartat oferirà una llista dels apartaments que compleixin els requisits indicats. En seleccionar un d'ells, s'ofereix informació més detallada, així com la possibilitat d'ubicar-lo en el mapa (redirigint a l'usuari al fitxer html d'"Ubicacions"), o bé permet que l'usuari enviï un mail de petició d'informació (redirigint l'usuari al formulari de "Contacta" ja amb les dades corresponents omplertes).
Continguts de la unitat formativa relacionats:
Ubicacions
Per personalitzar totalment aquest tipus de mapes s'utilitzarà la versió 3 de l'API de Google (que funciona sota javaScript), afegint marcadors, informació suplementària dintre de la interfície del mapa, així com el control d'accions (events) de l'usuari i aprofitament dels seus mètodes.
Al mateix temps, si s'accedeix des de l'apartat de cerca, al tenir seleccionat un apartament (amb un redireccionament de javaScript), únicament apareixerà l'apartament seleccionat amb el mapa de la localitat que correspongui. Si després es torna a la pantalla de cerca, la darrera cerca realitzada es manté.
Contingut relacionat:
Contacta
Contingut relacionat:
El control de la validació de la informació dels elements del formulari emplenat per l'usuari l'ha de portar totalment javaScript, eliminant en tot moment les acciones prefixades d'HTML5 de botons (submit) o d'altres elements, actualitzant els camps a mesura que l'usuari va introduint dades, anul•lant la autovalidació automàtica de la informació d'HTML5/CSS3 i reprenent el control del teclat (per evitar que l'usuari pugui introduir lletres/números o símbols incorrectes o no admesos en els camps del formulari).
Quan tota la informació obligatòria ha sigut introduïda i tota la informació respon a les característiques de dades requerides, javaScript recopila la informació i la traspassa a PHP, perquè aquest la registri a la base de dades corresponent sota les característiques i el format de dades necessàries.
La comunicació entre javaScript i PHP es realitzarà amb AJAX perquè aquesta sigui bidireccional (quan la informació s'ha guardat satisfactòriament, PHP avisa a javaScript perquè aquest pugui mostrar l'avís a l'usuari que el procés d'enviament de la informació s'ha completat de manera correcta), al mateix temps que tota aquesta interacció amb l'usuari es realitza sense necessitat que la pàgina s'hagi de tornar carregar.
Aquesta segona fase de desenvolupament relativa als continguts de la unitat formativa (UF1842) sobre javaScript té una gran i estreta relació amb l'anterior (UF1841), basada en HTML5 i CSS3, ja que es construeix sobre la seva base. No obstant això, la gran importància de javaScript es fonamenta en la possibilitat que té per relacionar-se amb altres llenguatges de servidor perquè realitzi accions que no pot realitzar per si mateix, com guardar i recuperar informació a través de l'accés a bases de dades.
Així, si bé la connexió amb la base de dades i la recollida de la informació recau de manera íntegra en PHP, la interacció amb l'usuari perquè aquest estableixi els paràmetres de cerca (filtres) d'aquesta informació i la posterior visualització de la informació pot recaure tant sobre javaScript com sobre PHP.
Dintre del present curs de Certificació de Professionalitat es tractaran aquestes dues possibilitats. D'aquesta manera, les activitats de la unitat formativa (UF1844) es basaran en un entorn basat en tots els processos a través de PHP, tant en la comunicació amb l'usuari, la connexió, la recollida de dades i la posterior visualització al navegador, sense la intervenció de javaScript.
Per practicar l'altra possibilitat, s'han introduït algunes activitats a la unitat formativa sobre javaScript (com és el cas de l'apartat "Cerca"), basada en la recollida de dades des de javaScript a través de PHP, perquè posteriorment sigui javaScript qui s'encarregui de gestionar la informació rebuda de PHP i mostrar-la en pantalla de la manera que correspongui. Dintre d'aquesta fase de desenvolupament de javaScript, en cap cas es contempla l'escriptura de dades des de javaScript a través de PHP degut a la seva dificultat i la necessitat de coneixements sobre PHP.
Per això, serà amb posterioritat a la realització de les activitats de la unitat formativa referida a PHP, que es realitzarà una ampliació d'aquesta comunicació javaScript/PHP sobre la possibilitat d'escriptura de dades des de javaScript a través de PHP, que contemplarà els següents passos:
Producte final: | Conjunt de set pàgines web relacionades amb base HTML5/CSS3 i funcionalitats millorades de javaScript. |
---|---|
Durada: | Del 4 de juliol fins al 29 de juliol. |
Objectius: |
|
Contingut relacionat: | Presentat a la Taula d'aquest document. |
Presentació: | El producte final és deriva de la modificació, ampliació i millora dels cinc apartats creats a l'anterior unitat formativa (amb HTML5 i CSS3) incorporant funcionalitats del llenguatge de programació javaScript i creació de dos apartats nous creats amb una base mínima d'HTML5 i CSS3, però preparats per una integració de funcionalitats amb javaScript.
Es poden trobar totes les característiques, així com una informació molt més detallada (funcionalitats a avaluar, arbre de navegació, apartats i definició de cadascun dels indicadors d'avaluació relacionats sobre apartats concrets) sobre aquest tema en pàgines anteriors. Totes les activitats d'avaluació d'aquesta unitat formativa demanades als alumnes pels docents vénen precedides d'exercicis d'apropament parcialment guiades a classe que tracten els continguts d'una manera directa i aïllada, en un document nou i per tant sense relació amb altres codis de javaScript. L'aprenentatge es fonamenta en la posterior relació i combinació d'aquest codi amb altres funcions, variables, arrays, events, condicionals, bucles, mètodes i sentències de javaScript referents a altres funcionalitats de la pàgina. Per informació més detallada es possible accedir a l'apartat "Descripció del producte/projecte". |
Material necessari: | Tot el programari proposat és de llicència oberta i per tant gratuït.
|
Organització: | Tots els treballs són de caràcter individual encara que tots els alumnes tenen les mateixes activitats i requeriments per realitzar. A classe es realitzen activitats que tracten orientacions i funcionalitats similars a les característiques de les activitats que es demanen. El projecte es comença a classe individualment i en funció del ritme d'aprenentatge de cada alumne es finalitza fora del període lectiu durant un temps que pot ser molt diferent per cada persona. |
Avaluació: | Al tractar-se d'un contingut basat gairebé de manera exclusiva en un llenguatge de programació, adquireix una important rellevància la comprensió del funcionament intern i el raonament de qualsevol llenguatge de programació per part de l'alumne, ¬¬per la qual cosa la pràctica individual és totalment imprescindible per poder assolir uns mínims de coneixements sòlids amb javaScript.
Per això, en tots els processos d'avaluació es valorarà d'una manera molt important i significativa totes aquelles funcionalitats 'extra' de producció i desenvolupament propi que impliquin una capacitat de risc/innovació i investigació més enllà de les característiques demandades pels docents en cadascuna de les activitats. L'avaluació es realitza a través dels indicadors. La majoria d'indicadors fan referència a funcionalitats presents en apartats concrets de la web. |