SlideShare uma empresa Scribd logo
1 de 65
I linguaggi del Web – 2ª Ed. (2° Giorno)

 Diego La Monica – Web Solution Developer
 Email:       me@diegolamonica.info
 Web:         http://diegolamonica.info
 Twitter:     http://twitter.com/jast/
 Slide Share: http://slideshare.net/diego.la.monica/
 Skype:       diego.la.monica
 Mobile:      +39 333 7235382
Chi sono?
●   Web solution developer
●   Membro di IWA/HWG
●   Membro del Consiglio Direttivo di IWA Italy da Febbraio 2009




                                                                     2
●   Membro del Gruppo di Lavoro Protocols & Format istituito dal W3C per
conto di IWA/HWG
●   Autore del tool “Wi.Li.” http://wili.diegolamonica.info
●   Autore del framework JavaScript “JAST” http://jastegg.it
●   Autore del framework PHP “ALPHA”
http://github.com/diegolamonica/ALPHA/

                  I linguaggi del Web – Diego La Monica – http://diegolamonica.info
                  International Webmasters Association - http://www.iwa.it
Il programma della giornata

  Modulo 2 – Stili e Crossbrowsing
 Cos'è uno stile




                                                                 3
 Come si può descrivere lo stile di un elemento
 Una cascata di... colori
 Separare l'informazione dalla sua presentazione
 Rendere la regola cross-browser
 L'accessibilità sempre in testa!

              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
Il programma della giornata

Modulo 3 – Javascript
 Cos’è Javascript




                                                              4
 Document Object Model
 Browser Object Model
 Graceful degradation
 Progressive enhancement

           I linguaggi del Web – Diego La Monica – http://diegolamonica.info
           International Webmasters Association - http://www.iwa.it
Nota sulla slide


Nell'angolo inferiore destro di alcune slide è
presente un “pallino” come è visibile in


                                                            5
questa slide.
Esso indica che per la slide è prevista una
sessione pratica.

         I linguaggi del Web – Diego La Monica – http://diegolamonica.info
         International Webmasters Association - http://www.iwa.it
Modulo 2 – Stili & Crossbrowsing

 Cos'è uno stile
 Come si può descrivere lo stile di un elemento




                                                              6
 Una cascata di... colori
 Separare l'informazione dalla sua presentazione
 Rendere la regola cross-browser
 L'accessibilità sempre in testa!

           I linguaggi del Web – Diego La Monica – http://diegolamonica.info
           International Webmasters Association - http://www.iwa.it
Cos'è uno stile

È una regola che descrive la presentazione di uno
o più elementi (tag) presenti su un documento.




                                                               7
    border: 1px solid red;                   Regola di stile


    background-color: #ffe;                  Proprietà

    font-size: 2em ;          Valore

    Color: #800 ;            Separatore



         I linguaggi del Web – Diego La Monica – http://diegolamonica.info
         International Webmasters Association - http://www.iwa.it
Stilizzare un elemento #1

Stile “in linea”:




                                                             8
     <div style="border: 1px solid red">

        Lorem Ipsum dolor sit amet

     </div>




          I linguaggi del Web – Diego La Monica – http://diegolamonica.info
          International Webmasters Association - http://www.iwa.it
Stilizzare un elemento #2
                       Stile “sulla pagina”:
                           <style type="text/css">
                               div{




                                                               9
                                   border: 1px solid red;
Selettore
                                   Color: #f00;
                                   Background-color: #ffe;
                               }
                           </style>

            I linguaggi del Web – Diego La Monica – http://diegolamonica.info
            International Webmasters Association - http://www.iwa.it
Stilizzare un elemento - 3
                                                  ●   Può fornire informazioni sulla
                                                      pagina (es. link di navigazione).
Stile “separato dalla pagina”:                    ●   Può riferirsi aun foglio di stile
                                                      (rel="stylesheet")
                                                  ●   Può riferirsi per esempio a una
                                                      copia stampabile della pagina




                                                            10
                                                      corrente (rel="alternate"
                                                      media="print")
 <link rel="stylesheet"
                  href="mioStile.css"
Definisce l'URL del                      media="screen" />
foglio di stile

 all, braille, embossed, handheld, print, projection, screen, speech, tty, tv

                I linguaggi del Web – Diego La Monica – http://diegolamonica.info
                International Webmasters Association - http://www.iwa.it
Descrivere lo stile di un tag
h1{
    display: block;
    text-indent: 1em;




                                               11
}


div{
    font-family: Verdana, Arial, Sans-serif;
    font-size: 0.8em;
}

       I linguaggi del Web – Diego La Monica – http://diegolamonica.info
       International Webmasters Association - http://www.iwa.it
Attributi speciali id e class
<div id="mio-div">Lorem Ipsum</div>
                                         Riferimento univoco
                                         sul documento
<div class="altro-elemento">




                                               12
  Dolor Sit                              Identifica elementi
                                         con caratteristiche
</div>                                   presentazionali simili

<p class="altro-elemento">
  Amet
</p>


       I linguaggi del Web – Diego La Monica – http://diegolamonica.info
       International Webmasters Association - http://www.iwa.it
Stile in base a id e class

#mio-div{                     ← In base all'ID
    …




                                                13
}


.altro-elemento{              ← In base alla Classe
    …
}


        I linguaggi del Web – Diego La Monica – http://diegolamonica.info
        International Webmasters Association - http://www.iwa.it
Una cascata di colori
p{ … }       ←        Applicato a tutti i paragrafi

div p{ … } ←          Applicato a tutti i paragrafi




                                            14
                      che sono sotto un DIV

div p.myclass{ … } ←              Applicato a tutti i
                                  paragrafi con classe
                                  myclass sotto un DIV

    I linguaggi del Web – Diego La Monica – http://diegolamonica.info
    International Webmasters Association - http://www.iwa.it
Separare la presentazione dal contenuto
“Usare i fogli di stile per controllare la presentazione dei contenuti e
organizzare le pagine in modo che possano essere lette anche quando i
fogli di stile siano disabilitati o non supportati.”
DM 8 Luglio 2005 – Requisito n. 11




<style type="text/css">
    @import "myStyle.css"
</style>
                                                       15
<link rel=”stylesheet” type=”text/css” href=”myStyle.css” />

Oppure:




              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
Rendere la regola cross-browser
Ciascun browser interpreta alcune caratteristiche dei CSS indicate
nella documentazione W3C in modo arbitrario.

Talvolta le caratteristiche vengono implementate solo da alcuni di essi.




                                                      16
border-radius: 5px;         ← Specifica per angoli arrotondati in CSS3

-moz-border-radius: 5px;             ← Versione dello stile definita da
Mozilla (non consente la validazione del CSS)

-webkit-border-radius:5px ← Versione supportata da Safari e

Chrome (non consente la validazione del CSS)
              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
Cross-browser... offuscato...

Una caratteristica trattata secondo interpretazione
soggettiva è la trasparenza:




                                                     17
opacity: 0.9;     ← Indica che l'opacità dell'oggetto è del 90%.

Su Internet Explorer non funziona…

Filter: opacity(alpha=90); ← Versione funzionante per IE...
ma il CSS non viene validato


             I linguaggi del Web – Diego La Monica – http://diegolamonica.info
             International Webmasters Association - http://www.iwa.it
Per pochi... solo per IE...
Per consentire a Internet Explorer di caricare dei
contenuti che gli altri browser non dovranno
interpretare è necessario utilizzare dei tag di




                                                 18
commento strutturati in modo particolare:
  <!--[if lte IE 6]>
  <link rel="stylesheet" type="text/css"
       href="ie5.css" />
  <![endif]-->

         I linguaggi del Web – Diego La Monica – http://diegolamonica.info
         International Webmasters Association - http://www.iwa.it
… per Opera, Safari, Chrome, Firefox …
Utilizzare selettori di dispositivo (Media Queries) più
articolati (però si tratta di caratteristiche di CSS 3):
<link rel="stylesheet" type="text/css"




                                                    19
   href="/style.css" media="all and (color)">


          http://www.w3.org/TR/css3-mediaqueries/


Anche Internet Explorer 9 supporta le Media Queries
            I linguaggi del Web – Diego La Monica – http://diegolamonica.info
            International Webmasters Association - http://www.iwa.it
… e per tutti gli altri?
Secondo Microsoft per servire delle parti di HTML
a tutti browser ad eccezione di IE è necessario
utilizzare la seguente sintassi:




                                                  20
  <![if !IE]> … <![endif]>

Ma il markup diventerà invalido... Soluzione?
  <!--[if !IE]>-->
  <link rel="stylesheet" type="text/css"
       href="all-browsers.css" />
  <!--<![endif]-->
          I linguaggi del Web – Diego La Monica – http://diegolamonica.info
          International Webmasters Association - http://www.iwa.it
Codici condizionali di IE
Operatore Descrizione
IE              Identifica Internet Explorer o se seguito da un numero è
                un vettore di versionamento
lt              “Less Than” = Minore Di




                                                      21
lte             “Less Than Equal” = Minore o uguale a
gt              “Greater Than” = Maggiore di
gte             “Greater Than Equal” = Maggiore o uguale a
!               Negazione (NOT)
&,|             Operatori And e Or
()              Raggruppamento di sottoespressioni
True, False     Costanti booleane Vero Falso

              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
Problema: il “Box Model”
                           According to the CSS1 specification,
                           released by the World Wide Web
                           Consortium (W3C) in 1996 and
                           revised in 1999, when a width or




                                            22
                           height is explicitly specified for any
                           block-level     element,      it    should
                           determine only the width or height of
                           the visible element, with the padding,
                           borders,      and     margins      applied
                           afterward.
    I linguaggi del Web – Diego La Monica – http://diegolamonica.info
    International Webmasters Association - http://www.iwa.it
Il “Box Model”: la soluzione
<div class=”esterno”>               annidare due box,
   <div class=”interno”>
      Lorem Ipsum                   definire in quello
   </div>                           più esterno un width
</div>
                                    pari alla larghezza



                                                 23
                                    che si vuole abbia il
                                    box, e in quello più
                                    interno     solo   il
        Lorem Ipsum
                                    padding ed il border
                                    desiderato.
         I linguaggi del Web – Diego La Monica – http://diegolamonica.info
         International Webmasters Association - http://www.iwa.it
CSS 3 – A che punto siamo?
Caratteristiche supportate Internet Explorer 6, 7 e 8
  ●   word-wrap

      linear-gradient (utilizzando dei filtri proprietari)




                                                     24
  ●



  ●   Alcune trasformazioni (utilizzando filtri proprietari)

  ●   Opacity (utilizzando filtri proprietari anche se un po' tutti
      fino a poco fa lo facevano)

  ●   @font-face
             I linguaggi del Web – Diego La Monica – http://diegolamonica.info
             International Webmasters Association - http://www.iwa.it
CSS 3 – A che punto siamo?
Caratteristiche supportate dai browser attuali
   (Internet Explorer 9, Opera 10+, Firefox 3.5+, Chrome e Safari 3+)
  ●   box-sizing (funziona anche in IE8)     ●   Multiple Backgrounds




                                                      25
  ●   border-radius                          ●   Background-clip
  ●   box-shadow                             ●   Background-origin
  ●   Colori nel formato RGBA                ●   Background-size
  ●   Colori nel formato HSLA                ●   Transforms
                                             ●   Media Queries


              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
CSS 3 – A che punto siamo?
Caratteristiche supportate dai browser attuali
                                                      (ad eccezione di IE9)
  ●   text-shadow




                                                      26
  ●   border-image
  ●   outline-offset
  ●   transizioni (non disponibili in Firefox 3.x; aggiunte in Firefox 4+)




              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
L'accessibilità sempre in testa
  ●   Rispetto degli standard
  ●   Aumentare la semantica
Perchè?




                                                        27
  ●   Per garantire alle tecnologie assistive di poter fruire i contenuti
  ●   Perchè accessibilità e usabilità viaggiano di pari passo
  ●   Perchè i motori di ricerca non guardano... Leggono!
“Fare web e come partecipare ad un gioco: Standard, Accessibilità e Usabilità
sono solo alcune delle sue regole. Nessun gioco è bello se non si seguono le
regole!”
                I linguaggi del Web – Diego La Monica – http://diegolamonica.info
                International Webmasters Association - http://www.iwa.it
Riferimenti sul web
●   Specifiche CSS2: http://www.w3.org/TR/CSS2/
●   Box Model: http://www.w3.org/TR/CSS21/box.html
●   Roadmap CSS3: http://www.w3.org/TR/2001/WD-css3-roadmap-20010523/




                                                           28
●   Supporto dei CSS3: http://www.impressivewebs.com/css3-browser-support/
●   Supporto della caratteristica opacity:
    http://www.impressivewebs.com/css-opacity-reference/
●   Aderenza di IE ai CSS:
    http://msdn.microsoft.com/en-us/library/cc351024(v=vs.85).aspx
●   Datasheet sulle caratteristiche CSS3 supportate da IE9:
    http://www.impressivewebs.com/css3-support-ie9/
                  I linguaggi del Web – Diego La Monica – http://diegolamonica.info
                  International Webmasters Association - http://www.iwa.it
Modulo 3 – Javascript

   I linguaggi del Web – Diego La Monica – http://diegolamonica.info
   International Webmasters Association - http://www.iwa.it
Cos'è Javascript
●   Javascript è un linguaggio di scripting lato client
●   Basato sullo standard ECMAScript
    Il nome deriva dalla somiglianza strutturale della



                                                     30
●



    grammatica di Java
●   Ciascun vendor ha implementato la sua versione
●   Quasi tutti i browser supportano Javascript
●   Tuttavia bisogna pensare anche a chi non lo supporta
             I linguaggi del Web – Diego La Monica – http://diegolamonica.info
             International Webmasters Association - http://www.iwa.it
Il terminatore di riga
Ogni istruzione può terminare con un “;” oppure

con la sequenza di caratteri CR+LF (oppure solo




                                                    31
LF), salvo eccezioni
var xyz = 123; //Riga terminata con “;”

var abc = “ciao mondo” // Riga terminata senza “;”

var abc =    1 +

             2;       // l'eccezione
            I linguaggi del Web – Diego La Monica – http://diegolamonica.info
            International Webmasters Association - http://www.iwa.it
Commentare il codice

// Commento su singola linea

                /*




                                                32
                     Commento su più linee

                */
 /**
 * Commento in formato javadoc
 */

        I linguaggi del Web – Diego La Monica – http://diegolamonica.info
        International Webmasters Association - http://www.iwa.it
Blocchi condizionali - if
Per descrivere dei blocchi di codice si usano “{” e “}”.

“If” esegue un blocco di codice se la condizione




                                                   33
“expression” si verifica. Altrimenti esegue l'“alternativa”

     if(expression){
       …
     } else {
       …
     }

           I linguaggi del Web – Diego La Monica – http://diegolamonica.info
           International Webmasters Association - http://www.iwa.it
Blocchi condizionali - switch
Controlla se l'espressione assume uno dei possibili valori

      switch(expression){
        case(value1):
          …




                                                   34
          break;
        case(value2):
          …
          break;
        default:
          …
          break;
     }
           I linguaggi del Web – Diego La Monica – http://diegolamonica.info
           International Webmasters Association - http://www.iwa.it
Cicli iterativi
Blocco di codice ripetuto fino al verificarsi di una precisa
condizione.
   for(var i=0; i<100; i++){
      …




                                                      35
   }

   for(keys in object){
      …
   }

   while(i++<100){
      …
   }
              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
Gli array

L'elemento di un array è referenziato tramite un indice
descritto tra parentesi quadre.
     var myArray = new Array();




                                                   36
     myArray[0] = 1;
     myArray[1] = “lorem ipsum”;
     myArray[2] = true;
Esistono inoltre array Associativi
     myArray[“chiave”] = 123;

           I linguaggi del Web – Diego La Monica – http://diegolamonica.info
           International Webmasters Association - http://www.iwa.it
Gli oggetti
I metodi e le proprietà di un oggetto sono referenziate

tramite “.”
alert(document.title)




                                                   37
window.location.href = “http://192.168.0.1/index.htm”


Ma un oggetto in Javascript equivale ad un array

associativo:

     document['title'] == document.title
           I linguaggi del Web – Diego La Monica – http://diegolamonica.info
           International Webmasters Association - http://www.iwa.it
Cosa sono gli oggetti
Ogni cosa in JavaScript è o un valore primitivo o un oggetto. Gli oggetti sono
entità dotate di unicità (sono uguali solo a sé stessi) e che associano nomi di
proprietà a valori.
    function Home(){
        this.windows = 8;




                                                       38
        this.doors = 1;
        this.flors = 2;
        this.doorIsOpened = false;
        function openDoor(){
            this.doorIsOpened = true;
        }
        …
    }

    var home = new Home();
    alert(home.doorIsOpened?'La porta è aperta':'La porta è chiusa');
    home.openDoor();
    alert(home.doorIsOpened?'La porta è aperta':'La porta è chiusa');


               I linguaggi del Web – Diego La Monica – http://diegolamonica.info
               International Webmasters Association - http://www.iwa.it
Estendere gli oggetti
●   Javascript è un linguaggio orientato a oggetti basato su
    prototipi
●   l'ereditarietà è fra oggetti, non fra classi.




                                                        39
●   gli oggetti ereditano le proprietà dai loro prototipi.
●   si possono aggiungere ulteriori proprietà o metodi ai
    singoli oggetti dopo la creazione.
●   ogni oggetto del linguaggio espone una proprietà conosciuta
    come prototype.

                I linguaggi del Web – Diego La Monica – http://diegolamonica.info
                International Webmasters Association - http://www.iwa.it
JSON (da http://www.json.org/ )

JSON is a lightweight data-interchange format. It is easy for
humans to read and write. It is easy for machines to parse and




                                                        40
generate. It is based on a subset of the        JavaScript Programming Language

,Standard ECMA-262 3rd Edition - December 1999.   JSON is a text format
that is completely language independent but uses conventions
that are familiar to programmers of the C-family of languages[…].
These properties make JSON an ideal data-interchange language.


                I linguaggi del Web – Diego La Monica – http://diegolamonica.info
                International Webmasters Association - http://www.iwa.it
Stringhe in JSON




                                            41
    I linguaggi del Web – Diego La Monica – http://diegolamonica.info
    International Webmasters Association - http://www.iwa.it
Numeri in JSON




                                            42
    I linguaggi del Web – Diego La Monica – http://diegolamonica.info
    International Webmasters Association - http://www.iwa.it
Array con JSON
Array indicizzato:

         [ 1, 2, 3,
           4, 5 ];




                                                43
Array associativo:

         {
             'cat': 'foo',
             'dog': 'bar'
         }



        I linguaggi del Web – Diego La Monica – http://diegolamonica.info
        International Webmasters Association - http://www.iwa.it
Oggetti con JSON
var coords = {
   X: 100,
   Y: 110,
   Z: 25,
   movePoint: function(offsetX,offsetY,offsetZ){
      …




                                                 44
   },
   getPoint: function(){
      return {
         x: this.X,
         y: this.Y,
         z: this.Z
      }
   }
}
         I linguaggi del Web – Diego La Monica – http://diegolamonica.info
         International Webmasters Association - http://www.iwa.it
Document Object Model
●   È la struttura di un documento
    HTML/XML esposto sotto forma di
    oggetto a Javascript




                                                      45
●   Ogni elemento ha delle caratteristiche
    comuni      agli     altri     e      alcune
    “specializzazioni”
●   Esistono nodi di tipo TextNode
●   E nodi di tipo HTMLNode

              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
Metodi principali del DOM
element.getElementById(<nodeid>)

Restituisce il nodo del DOM che ha come
attributo id il valore specificato per <nodeid>

element.getElementsByTagName(<tagname>)

Restituisce un array di elementi del DOM il
cui tag è <tagname>.
                                                    46
            I linguaggi del Web – Diego La Monica – http://diegolamonica.info
            International Webmasters Association - http://www.iwa.it
Manipolazione degli attributi
element.setAttribute(<attribute name>, <value>)

Imposta il valore dell'attributo       <attribute      name>    per l'elemento
element



element.getAttribute(<attribute name>)

Restituisce il valore dell'attributo
element.                                              47
                                       <attribute name>          per l'elemento




              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
Navigazione tra i nodi

element.parentNode
Restituisce il nodo padre del nodo element
element.firstChild




                                                     48
Restituisce il primo nodo nella struttura del DOM figlio di element.
element.lastChild
Restituisce l'ultimo nodo nella struttura del DOM figlio di element.
element.childNodes
Restituisce in un array tutti i nodi figli di element.

             I linguaggi del Web – Diego La Monica – http://diegolamonica.info
             International Webmasters Association - http://www.iwa.it
Creare e collocare nodi nel DOM
document.createElement(<element type>)
  Restituisce un elemento di tipo HTML. <element type>          corrisponde al
  tag name dell'elemento.
document.createTextNode(<text content>)




                                                     49
  Restituisce un nodo di tipo testo impostando come contenuto il valore
  specificato.
element.appendChild(<new node>)
  Imposta come ultimo figlio di element nella struttura del DOM il nodo
  <new node>    che equivale a un oggetto creato con una delle funzioni
  createElement     oppure createTextNode.
             I linguaggi del Web – Diego La Monica – http://diegolamonica.info
             International Webmasters Association - http://www.iwa.it
Rimuovere un nodo del DOM

element.removeChild(<child node>)
  Elimina il nodo <child node> figlio di element.




                                                    50
  var element = document.getElementById('the-div');
  var elementFirstChild = element.firstChild;


  // Rimuovo il primo nodo figlio di element
  element.removeChild(elementFirstChild)



            I linguaggi del Web – Diego La Monica – http://diegolamonica.info
            International Webmasters Association - http://www.iwa.it
Definire il valore di un nodo

Rispettando le specifiche W3C:
element.nodeValue = "Lorem Ipsum"
Imposta il valore del nodo element.



Non rispettando le specifiche W3C:
element.innerHTML = "<strong>Dolor sit amet</strong>"
Imposta il valore HTML dell'elemento element.
                                                     51
             I linguaggi del Web – Diego La Monica – http://diegolamonica.info
             International Webmasters Association - http://www.iwa.it
Cos'è un evento?

Invocazione di un metodo al verificarsi
di una data condizione (click del mouse,




                                                     52
pressione tasto della tastiera).


Ciascun nodo del DOM espone una serie
di eventi intercettabili da javascript

             I linguaggi del Web – Diego La Monica – http://diegolamonica.info
             International Webmasters Association - http://www.iwa.it
Tipi di eventi
Eventi generati da azioni svolte con il mouse
   ● onclick, ondblclick, onmousedown, onmouseup, onmouseover,

     onmouseout, onmousemove

Eventi generati dall'interazione utente/tastiera




                                                     53
   ● onkeypress, onkeydown, onkeyup




Eventi della pagina, dei frame e degli object
   ● onload, onunload,onresize, onerror, onabort




Eventi scatenati dall'interazione con un modulo (form)
   ● onselect, onchange, onsubmit, onreset, onfocus, onblur



             I linguaggi del Web – Diego La Monica – http://diegolamonica.info
             International Webmasters Association - http://www.iwa.it
Intercettare un evento
Modalità inline:
<a href="#" onclick="alert('ciao mondo');">ciao</a>


Modalità classica:
element.onclick = function(){ alert('ciao mondo'); };




                                                    54
Modalità avanzata suggerita W3C:

  element.addEventListener(
     'click',
     function(){
        alert('ciao mondo');
     });

            I linguaggi del Web – Diego La Monica – http://diegolamonica.info
            International Webmasters Association - http://www.iwa.it
Manipolare lo stile

Impostando direttamente lo stile sull'elemento:
                       element.style
Tramite element.style è possibile modificare tutte le proprietà di stile




                                                        55
dell'elemento applicate tramite CSS.


Impostando una classe di stile:
  element.className = "example-class"

               I linguaggi del Web – Diego La Monica – http://diegolamonica.info
               International Webmasters Association - http://www.iwa.it
Browser Object Model (BOM)
●   window   (la finestra del Browser)
●   document     (il DOM)
●   frames




                                                     56
●   history    (la cronologia della sessione corrente)
●   location     (la barra degli indirizzi del Browser)
●   navigator      (proprietà dello User Agent)
●   screen   (lo schermo del client)
             I linguaggi del Web – Diego La Monica – http://diegolamonica.info
             International Webmasters Association - http://www.iwa.it
Oggetto window
Proprietà                                   Metodi
●   window.status                           ●   window.open(url, nome, prop)
    la barra di stato del browser               apre una finestra
●   window.location
    la pagina visualizzata nella finestra   ●   window.close( )




                                                              57
●   window.location.href                        chiude una finestra
    l'url della pagina visualizzata
●   window.parent
                                            ●   window.history.go(n)
    la finestra contenitore                     avanti e indietro nella storia
●   window.top
    la finestra principale
●   window.self
    la finestra della pagina stessa
●   window.history
    la storia di navigazione
                  I linguaggi del Web – Diego La Monica – http://diegolamonica.info
                  International Webmasters Association - http://www.iwa.it
Graceful degradation

●   Si progetta per la massa
●   Si cura successivamente la minoranza




                                                      58
●   Esempi pratici:
    ●   Testo alternativo dell'immagine
    ●   Tabelle per il layout
    ●   Elemento <noscript></noscript>

              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
Progressive Enhancement – cos'è?


●   Progettazione strutturale
●   Si parte da una “versione di base”




                                                   59
●   Progressivamente si verificano le capacità del
    browser    per     esporre        nuove        e     più     evolute
    funzionalità


           I linguaggi del Web – Diego La Monica – http://diegolamonica.info
           International Webmasters Association - http://www.iwa.it
Progressive Enhancement – uso #1

●   Pagina HTML

        Viene caricato il contenuto informativo della pagina




                                                       60
    ●




    ●   Se il browser supporta i fogli di stile caricherà anche gli

        stylesheet     definiti      nel      documento          (Progressive

        Enhancement)



               I linguaggi del Web – Diego La Monica – http://diegolamonica.info
               International Webmasters Association - http://www.iwa.it
Progressive Enhancement – uso #2

●   Menu a tendina
    ●   Il menu viene presentato come un elenco puntato




                                                      61
    ●   Se Javascript è disponibile vengono caricati i CSS e

        creati eventuali altri nodi del DOM (Progressive

        Enhancement)

              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
Progressive Enhancement – uso #3

●   Validazione Form
    ●   La validazione avviene lato server




                                                      62
    ●   Se Javascript è disponibile viene effettuato il

        controllo     anche         lato       client       (Progressive

        Enhancement)

              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
Progressive Enhancement – uso #4

●
    Caricamento AJAX di contenuti
    ●   Viene caricata la pagina con link alle risorse




                                                      63
    ●   Viene intercettata la richiesta (Evento click e
        keypress), caricati i contenuti parziali e annullato
        l'evento per evitare che ci sia il caricamento
        completo della pagina (Progressive Enhancement)

              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
Wi.Li. - Link esterni discrezionali
●
    Caricamento pagina
     ●   La pagina viene presentata con i comportamenti
         predefiniti su ciascun link




                                                      64
     ●   Viene creata una selezione per sapere se i link
         devono essere caricati nella finestra corrente o in
         una nuova finestra e generati gli handler per
         intercettare l'evento. (Progressive Enhancement)

              I linguaggi del Web – Diego La Monica – http://diegolamonica.info
              International Webmasters Association - http://www.iwa.it
I linguaggi del Web (2° Giorno)

Diego La Monica – Web Solution Developer
Email:       me@diegolamonica.info
Web:         http://diegolamonica.info
Twitter:     http://twitter.com/jast/
Slide Share: http://slideshare.net/diego.la.monica/
Skype:       diego.la.monica
Mobile:      +39 333 7235382

Mais conteúdo relacionado

Destaque

Top 10 Most Expensive &amp; Most Affordable Buenos Aires Neighborhoods
Top 10 Most Expensive &amp; Most Affordable Buenos Aires NeighborhoodsTop 10 Most Expensive &amp; Most Affordable Buenos Aires Neighborhoods
Top 10 Most Expensive &amp; Most Affordable Buenos Aires NeighborhoodsInvestBA.com
 
Cytori corp feb 10 2016 final
Cytori corp feb 10 2016 finalCytori corp feb 10 2016 final
Cytori corp feb 10 2016 finalcytoriIR
 
Previsão da eficácia ofensiva do futebol pro ssional: Um caso Português
Previsão da eficácia ofensiva do futebol prossional: Um caso PortuguêsPrevisão da eficácia ofensiva do futebol prossional: Um caso Português
Previsão da eficácia ofensiva do futebol pro ssional: Um caso PortuguêsFrancisco Fernandes
 
Projek Chinatown 1
Projek Chinatown 1Projek Chinatown 1
Projek Chinatown 1lnahrawi
 
23-11-12 basement carpark
23-11-12 basement carpark23-11-12 basement carpark
23-11-12 basement carparkMediha Taptik
 
eStrategy Magazin Ausgabe 03-2016-Leseprobe
eStrategy Magazin Ausgabe 03-2016-LeseprobeeStrategy Magazin Ausgabe 03-2016-Leseprobe
eStrategy Magazin Ausgabe 03-2016-LeseprobeTechDivision GmbH
 
Leseprobe e strategy-magazin-ausgabe-04-2015
Leseprobe e strategy-magazin-ausgabe-04-2015Leseprobe e strategy-magazin-ausgabe-04-2015
Leseprobe e strategy-magazin-ausgabe-04-2015TechDivision GmbH
 
eStrategy Magazin Ausgabe 04-2016-Leseprobe
eStrategy Magazin Ausgabe 04-2016-LeseprobeeStrategy Magazin Ausgabe 04-2016-Leseprobe
eStrategy Magazin Ausgabe 04-2016-LeseprobeTechDivision GmbH
 
なぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのかなぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのかMikiya Okuno
 
Elementos de los edificios e historia de la arquitectura
Elementos de los edificios e historia de la arquitecturaElementos de los edificios e historia de la arquitectura
Elementos de los edificios e historia de la arquitecturaKoldo Parra
 

Destaque (19)

Top 10 Most Expensive &amp; Most Affordable Buenos Aires Neighborhoods
Top 10 Most Expensive &amp; Most Affordable Buenos Aires NeighborhoodsTop 10 Most Expensive &amp; Most Affordable Buenos Aires Neighborhoods
Top 10 Most Expensive &amp; Most Affordable Buenos Aires Neighborhoods
 
Escola
EscolaEscola
Escola
 
Cytori corp feb 10 2016 final
Cytori corp feb 10 2016 finalCytori corp feb 10 2016 final
Cytori corp feb 10 2016 final
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
Dar ayakkabilar
Dar ayakkabilarDar ayakkabilar
Dar ayakkabilar
 
Música1
Música1Música1
Música1
 
Previsão da eficácia ofensiva do futebol pro ssional: Um caso Português
Previsão da eficácia ofensiva do futebol prossional: Um caso PortuguêsPrevisão da eficácia ofensiva do futebol prossional: Um caso Português
Previsão da eficácia ofensiva do futebol pro ssional: Um caso Português
 
Projek Chinatown 1
Projek Chinatown 1Projek Chinatown 1
Projek Chinatown 1
 
Database Management Training
Database Management TrainingDatabase Management Training
Database Management Training
 
Serial
SerialSerial
Serial
 
MicroΜegas Detectors
MicroΜegas DetectorsMicroΜegas Detectors
MicroΜegas Detectors
 
23-11-12 basement carpark
23-11-12 basement carpark23-11-12 basement carpark
23-11-12 basement carpark
 
Nutrient Innovations Task Group Report
Nutrient Innovations Task Group ReportNutrient Innovations Task Group Report
Nutrient Innovations Task Group Report
 
eStrategy Magazin Ausgabe 03-2016-Leseprobe
eStrategy Magazin Ausgabe 03-2016-LeseprobeeStrategy Magazin Ausgabe 03-2016-Leseprobe
eStrategy Magazin Ausgabe 03-2016-Leseprobe
 
Leseprobe e strategy-magazin-ausgabe-04-2015
Leseprobe e strategy-magazin-ausgabe-04-2015Leseprobe e strategy-magazin-ausgabe-04-2015
Leseprobe e strategy-magazin-ausgabe-04-2015
 
eStrategy Magazin Ausgabe 04-2016-Leseprobe
eStrategy Magazin Ausgabe 04-2016-LeseprobeeStrategy Magazin Ausgabe 04-2016-Leseprobe
eStrategy Magazin Ausgabe 04-2016-Leseprobe
 
ならば(その弐)
ならば(その弐)ならば(その弐)
ならば(その弐)
 
なぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのかなぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのか
 
Elementos de los edificios e historia de la arquitectura
Elementos de los edificios e historia de la arquitecturaElementos de los edificios e historia de la arquitectura
Elementos de los edificios e historia de la arquitectura
 

Semelhante a I linguaggi del web - seconda edizione (2° giornata)

SES Milano 2006 - Luca Schibuola, La giusta architettura dei siti
SES Milano 2006 - Luca Schibuola, La giusta architettura dei sitiSES Milano 2006 - Luca Schibuola, La giusta architettura dei siti
SES Milano 2006 - Luca Schibuola, La giusta architettura dei sitiTSW
 
Siti web, portali e Rich Internet Applications: tendenze e controtendenze
Siti web, portali e Rich Internet Applications: tendenze e controtendenzeSiti web, portali e Rich Internet Applications: tendenze e controtendenze
Siti web, portali e Rich Internet Applications: tendenze e controtendenzeDiego La Monica
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerMatteo Magni
 
Cosa ci sarà dopo i CSS3
Cosa ci sarà dopo i CSS3Cosa ci sarà dopo i CSS3
Cosa ci sarà dopo i CSS3Salvatore Laisa
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLSinergia Totale
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerMatteo Magni
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS DevicesAndrea Picchi
 
Html e Css - 2 | WebMaster & WebDesigner
 Html e Css - 2 | WebMaster & WebDesigner Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerMatteo Magni
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerMatteo Magni
 
Wordpress 3/7. temi e plugin
Wordpress 3/7. temi e pluginWordpress 3/7. temi e plugin
Wordpress 3/7. temi e pluginCity Planner
 
Criteri di valutazione dei siti web.
Criteri di valutazione dei siti web. Criteri di valutazione dei siti web.
Criteri di valutazione dei siti web. Lucia Bertini
 
... thinking about Microformats!
... thinking about Microformats!... thinking about Microformats!
... thinking about Microformats!Stefano Fago
 
HTML5 e Css3 - 5 | WebMaster & WebDesigner
HTML5 e Css3 - 5 | WebMaster & WebDesignerHTML5 e Css3 - 5 | WebMaster & WebDesigner
HTML5 e Css3 - 5 | WebMaster & WebDesignerMatteo Magni
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailStefano Ottaviani
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailDotNetMarche
 

Semelhante a I linguaggi del web - seconda edizione (2° giornata) (20)

SES Milano 2006 - Luca Schibuola, La giusta architettura dei siti
SES Milano 2006 - Luca Schibuola, La giusta architettura dei sitiSES Milano 2006 - Luca Schibuola, La giusta architettura dei siti
SES Milano 2006 - Luca Schibuola, La giusta architettura dei siti
 
Mobile UI Design
Mobile UI DesignMobile UI Design
Mobile UI Design
 
Siti web, portali e Rich Internet Applications: tendenze e controtendenze
Siti web, portali e Rich Internet Applications: tendenze e controtendenzeSiti web, portali e Rich Internet Applications: tendenze e controtendenze
Siti web, portali e Rich Internet Applications: tendenze e controtendenze
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesigner
 
Cosa ci sarà dopo i CSS3
Cosa ci sarà dopo i CSS3Cosa ci sarà dopo i CSS3
Cosa ci sarà dopo i CSS3
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTML
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesigner
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
 
Html e Css - 2 | WebMaster & WebDesigner
 Html e Css - 2 | WebMaster & WebDesigner Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
Performance e Drupal
Performance e DrupalPerformance e Drupal
Performance e Drupal
 
Wordpress 3/7. temi e plugin
Wordpress 3/7. temi e pluginWordpress 3/7. temi e plugin
Wordpress 3/7. temi e plugin
 
Introduzione al CSS
Introduzione al CSSIntroduzione al CSS
Introduzione al CSS
 
Criteri di valutazione dei siti web.
Criteri di valutazione dei siti web. Criteri di valutazione dei siti web.
Criteri di valutazione dei siti web.
 
... thinking about Microformats!
... thinking about Microformats!... thinking about Microformats!
... thinking about Microformats!
 
Portofino per Jug Padova
Portofino per Jug PadovaPortofino per Jug Padova
Portofino per Jug Padova
 
HTML5 e Css3 - 5 | WebMaster & WebDesigner
HTML5 e Css3 - 5 | WebMaster & WebDesignerHTML5 e Css3 - 5 | WebMaster & WebDesigner
HTML5 e Css3 - 5 | WebMaster & WebDesigner
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
 
Realizzare un sito web
Realizzare un sito webRealizzare un sito web
Realizzare un sito web
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
 

Mais de Diego La Monica

E se non avessi davvero bisogno di un app?
E se non avessi davvero bisogno di un app?E se non avessi davvero bisogno di un app?
E se non avessi davvero bisogno di un app?Diego La Monica
 
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...Diego La Monica
 
Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?Diego La Monica
 
Cordova: un viaggio di sola andata
Cordova: un viaggio di sola andataCordova: un viaggio di sola andata
Cordova: un viaggio di sola andataDiego La Monica
 
App di successo - quali strumenti? e le performance?
App di successo - quali strumenti? e le performance?App di successo - quali strumenti? e le performance?
App di successo - quali strumenti? e le performance?Diego La Monica
 
Applicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceApplicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceDiego La Monica
 
App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?Diego La Monica
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoDiego La Monica
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoDiego La Monica
 
Strategie per applicazioni web prima o meglio dell'app nativa
Strategie per applicazioni web prima o meglio dell'app nativaStrategie per applicazioni web prima o meglio dell'app nativa
Strategie per applicazioni web prima o meglio dell'app nativaDiego La Monica
 
Applicazioni mobili: dall'ideazione alla pubblicazione
Applicazioni mobili: dall'ideazione alla pubblicazioneApplicazioni mobili: dall'ideazione alla pubblicazione
Applicazioni mobili: dall'ideazione alla pubblicazioneDiego La Monica
 
Competenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webCompetenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webDiego La Monica
 
Siti web, Portali, Rich Internet Application: tendenze e controtendenze
Siti web, Portali, Rich Internet Application: tendenze e controtendenzeSiti web, Portali, Rich Internet Application: tendenze e controtendenze
Siti web, Portali, Rich Internet Application: tendenze e controtendenzeDiego La Monica
 
ALPHA Architectural Overview
ALPHA Architectural OverviewALPHA Architectural Overview
ALPHA Architectural OverviewDiego La Monica
 
Giochi on line: soluzione per il marketing virale!
Giochi on line: soluzione per il marketing virale!Giochi on line: soluzione per il marketing virale!
Giochi on line: soluzione per il marketing virale!Diego La Monica
 

Mais de Diego La Monica (20)

E se non avessi davvero bisogno di un app?
E se non avessi davvero bisogno di un app?E se non avessi davvero bisogno di un app?
E se non avessi davvero bisogno di un app?
 
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
 
Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?
 
Cordova: un viaggio di sola andata
Cordova: un viaggio di sola andataCordova: un viaggio di sola andata
Cordova: un viaggio di sola andata
 
Css stuffs #3
Css   stuffs #3Css   stuffs #3
Css stuffs #3
 
App di successo - quali strumenti? e le performance?
App di successo - quali strumenti? e le performance?App di successo - quali strumenti? e le performance?
App di successo - quali strumenti? e le performance?
 
Css stuffs #2
Css   stuffs #2Css   stuffs #2
Css stuffs #2
 
Css stuffs #1
Css   stuffs #1Css   stuffs #1
Css stuffs #1
 
Applicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceApplicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformance
 
App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successo
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successo
 
Strategie per applicazioni web prima o meglio dell'app nativa
Strategie per applicazioni web prima o meglio dell'app nativaStrategie per applicazioni web prima o meglio dell'app nativa
Strategie per applicazioni web prima o meglio dell'app nativa
 
Applicazioni mobili: dall'ideazione alla pubblicazione
Applicazioni mobili: dall'ideazione alla pubblicazioneApplicazioni mobili: dall'ideazione alla pubblicazione
Applicazioni mobili: dall'ideazione alla pubblicazione
 
Competenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webCompetenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del web
 
SVN/TRAC
SVN/TRACSVN/TRAC
SVN/TRAC
 
Siti web, Portali, Rich Internet Application: tendenze e controtendenze
Siti web, Portali, Rich Internet Application: tendenze e controtendenzeSiti web, Portali, Rich Internet Application: tendenze e controtendenze
Siti web, Portali, Rich Internet Application: tendenze e controtendenze
 
ALPHA Architectural Overview
ALPHA Architectural OverviewALPHA Architectural Overview
ALPHA Architectural Overview
 
Giochi on line: soluzione per il marketing virale!
Giochi on line: soluzione per il marketing virale!Giochi on line: soluzione per il marketing virale!
Giochi on line: soluzione per il marketing virale!
 
Pikno
PiknoPikno
Pikno
 

I linguaggi del web - seconda edizione (2° giornata)

  • 1. I linguaggi del Web – 2ª Ed. (2° Giorno) Diego La Monica – Web Solution Developer Email: me@diegolamonica.info Web: http://diegolamonica.info Twitter: http://twitter.com/jast/ Slide Share: http://slideshare.net/diego.la.monica/ Skype: diego.la.monica Mobile: +39 333 7235382
  • 2. Chi sono? ● Web solution developer ● Membro di IWA/HWG ● Membro del Consiglio Direttivo di IWA Italy da Febbraio 2009 2 ● Membro del Gruppo di Lavoro Protocols & Format istituito dal W3C per conto di IWA/HWG ● Autore del tool “Wi.Li.” http://wili.diegolamonica.info ● Autore del framework JavaScript “JAST” http://jastegg.it ● Autore del framework PHP “ALPHA” http://github.com/diegolamonica/ALPHA/ I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 3. Il programma della giornata Modulo 2 – Stili e Crossbrowsing  Cos'è uno stile 3  Come si può descrivere lo stile di un elemento  Una cascata di... colori  Separare l'informazione dalla sua presentazione  Rendere la regola cross-browser  L'accessibilità sempre in testa! I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 4. Il programma della giornata Modulo 3 – Javascript  Cos’è Javascript 4  Document Object Model  Browser Object Model  Graceful degradation  Progressive enhancement I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 5. Nota sulla slide Nell'angolo inferiore destro di alcune slide è presente un “pallino” come è visibile in 5 questa slide. Esso indica che per la slide è prevista una sessione pratica. I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 6. Modulo 2 – Stili & Crossbrowsing  Cos'è uno stile  Come si può descrivere lo stile di un elemento 6  Una cascata di... colori  Separare l'informazione dalla sua presentazione  Rendere la regola cross-browser  L'accessibilità sempre in testa! I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 7. Cos'è uno stile È una regola che descrive la presentazione di uno o più elementi (tag) presenti su un documento. 7 border: 1px solid red; Regola di stile background-color: #ffe; Proprietà font-size: 2em ; Valore Color: #800 ; Separatore I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 8. Stilizzare un elemento #1 Stile “in linea”: 8 <div style="border: 1px solid red"> Lorem Ipsum dolor sit amet </div> I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 9. Stilizzare un elemento #2 Stile “sulla pagina”: <style type="text/css"> div{ 9 border: 1px solid red; Selettore Color: #f00; Background-color: #ffe; } </style> I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 10. Stilizzare un elemento - 3 ● Può fornire informazioni sulla pagina (es. link di navigazione). Stile “separato dalla pagina”: ● Può riferirsi aun foglio di stile (rel="stylesheet") ● Può riferirsi per esempio a una copia stampabile della pagina 10 corrente (rel="alternate" media="print") <link rel="stylesheet" href="mioStile.css" Definisce l'URL del media="screen" /> foglio di stile all, braille, embossed, handheld, print, projection, screen, speech, tty, tv I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 11. Descrivere lo stile di un tag h1{ display: block; text-indent: 1em; 11 } div{ font-family: Verdana, Arial, Sans-serif; font-size: 0.8em; } I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 12. Attributi speciali id e class <div id="mio-div">Lorem Ipsum</div> Riferimento univoco sul documento <div class="altro-elemento"> 12 Dolor Sit Identifica elementi con caratteristiche </div> presentazionali simili <p class="altro-elemento"> Amet </p> I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 13. Stile in base a id e class #mio-div{ ← In base all'ID … 13 } .altro-elemento{ ← In base alla Classe … } I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 14. Una cascata di colori p{ … } ← Applicato a tutti i paragrafi div p{ … } ← Applicato a tutti i paragrafi 14 che sono sotto un DIV div p.myclass{ … } ← Applicato a tutti i paragrafi con classe myclass sotto un DIV I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 15. Separare la presentazione dal contenuto “Usare i fogli di stile per controllare la presentazione dei contenuti e organizzare le pagine in modo che possano essere lette anche quando i fogli di stile siano disabilitati o non supportati.” DM 8 Luglio 2005 – Requisito n. 11 <style type="text/css"> @import "myStyle.css" </style> 15 <link rel=”stylesheet” type=”text/css” href=”myStyle.css” /> Oppure: I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 16. Rendere la regola cross-browser Ciascun browser interpreta alcune caratteristiche dei CSS indicate nella documentazione W3C in modo arbitrario. Talvolta le caratteristiche vengono implementate solo da alcuni di essi. 16 border-radius: 5px; ← Specifica per angoli arrotondati in CSS3 -moz-border-radius: 5px; ← Versione dello stile definita da Mozilla (non consente la validazione del CSS) -webkit-border-radius:5px ← Versione supportata da Safari e Chrome (non consente la validazione del CSS) I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 17. Cross-browser... offuscato... Una caratteristica trattata secondo interpretazione soggettiva è la trasparenza: 17 opacity: 0.9; ← Indica che l'opacità dell'oggetto è del 90%. Su Internet Explorer non funziona… Filter: opacity(alpha=90); ← Versione funzionante per IE... ma il CSS non viene validato I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 18. Per pochi... solo per IE... Per consentire a Internet Explorer di caricare dei contenuti che gli altri browser non dovranno interpretare è necessario utilizzare dei tag di 18 commento strutturati in modo particolare: <!--[if lte IE 6]> <link rel="stylesheet" type="text/css" href="ie5.css" /> <![endif]--> I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 19. … per Opera, Safari, Chrome, Firefox … Utilizzare selettori di dispositivo (Media Queries) più articolati (però si tratta di caratteristiche di CSS 3): <link rel="stylesheet" type="text/css" 19 href="/style.css" media="all and (color)"> http://www.w3.org/TR/css3-mediaqueries/ Anche Internet Explorer 9 supporta le Media Queries I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 20. … e per tutti gli altri? Secondo Microsoft per servire delle parti di HTML a tutti browser ad eccezione di IE è necessario utilizzare la seguente sintassi: 20 <![if !IE]> … <![endif]> Ma il markup diventerà invalido... Soluzione? <!--[if !IE]>--> <link rel="stylesheet" type="text/css" href="all-browsers.css" /> <!--<![endif]--> I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 21. Codici condizionali di IE Operatore Descrizione IE Identifica Internet Explorer o se seguito da un numero è un vettore di versionamento lt “Less Than” = Minore Di 21 lte “Less Than Equal” = Minore o uguale a gt “Greater Than” = Maggiore di gte “Greater Than Equal” = Maggiore o uguale a ! Negazione (NOT) &,| Operatori And e Or () Raggruppamento di sottoespressioni True, False Costanti booleane Vero Falso I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 22. Problema: il “Box Model” According to the CSS1 specification, released by the World Wide Web Consortium (W3C) in 1996 and revised in 1999, when a width or 22 height is explicitly specified for any block-level element, it should determine only the width or height of the visible element, with the padding, borders, and margins applied afterward. I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 23. Il “Box Model”: la soluzione <div class=”esterno”> annidare due box, <div class=”interno”> Lorem Ipsum definire in quello </div> più esterno un width </div> pari alla larghezza 23 che si vuole abbia il box, e in quello più interno solo il Lorem Ipsum padding ed il border desiderato. I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 24. CSS 3 – A che punto siamo? Caratteristiche supportate Internet Explorer 6, 7 e 8 ● word-wrap linear-gradient (utilizzando dei filtri proprietari) 24 ● ● Alcune trasformazioni (utilizzando filtri proprietari) ● Opacity (utilizzando filtri proprietari anche se un po' tutti fino a poco fa lo facevano) ● @font-face I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 25. CSS 3 – A che punto siamo? Caratteristiche supportate dai browser attuali (Internet Explorer 9, Opera 10+, Firefox 3.5+, Chrome e Safari 3+) ● box-sizing (funziona anche in IE8) ● Multiple Backgrounds 25 ● border-radius ● Background-clip ● box-shadow ● Background-origin ● Colori nel formato RGBA ● Background-size ● Colori nel formato HSLA ● Transforms ● Media Queries I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 26. CSS 3 – A che punto siamo? Caratteristiche supportate dai browser attuali (ad eccezione di IE9) ● text-shadow 26 ● border-image ● outline-offset ● transizioni (non disponibili in Firefox 3.x; aggiunte in Firefox 4+) I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 27. L'accessibilità sempre in testa ● Rispetto degli standard ● Aumentare la semantica Perchè? 27 ● Per garantire alle tecnologie assistive di poter fruire i contenuti ● Perchè accessibilità e usabilità viaggiano di pari passo ● Perchè i motori di ricerca non guardano... Leggono! “Fare web e come partecipare ad un gioco: Standard, Accessibilità e Usabilità sono solo alcune delle sue regole. Nessun gioco è bello se non si seguono le regole!” I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 28. Riferimenti sul web ● Specifiche CSS2: http://www.w3.org/TR/CSS2/ ● Box Model: http://www.w3.org/TR/CSS21/box.html ● Roadmap CSS3: http://www.w3.org/TR/2001/WD-css3-roadmap-20010523/ 28 ● Supporto dei CSS3: http://www.impressivewebs.com/css3-browser-support/ ● Supporto della caratteristica opacity: http://www.impressivewebs.com/css-opacity-reference/ ● Aderenza di IE ai CSS: http://msdn.microsoft.com/en-us/library/cc351024(v=vs.85).aspx ● Datasheet sulle caratteristiche CSS3 supportate da IE9: http://www.impressivewebs.com/css3-support-ie9/ I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 29. Modulo 3 – Javascript I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 30. Cos'è Javascript ● Javascript è un linguaggio di scripting lato client ● Basato sullo standard ECMAScript Il nome deriva dalla somiglianza strutturale della 30 ● grammatica di Java ● Ciascun vendor ha implementato la sua versione ● Quasi tutti i browser supportano Javascript ● Tuttavia bisogna pensare anche a chi non lo supporta I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 31. Il terminatore di riga Ogni istruzione può terminare con un “;” oppure con la sequenza di caratteri CR+LF (oppure solo 31 LF), salvo eccezioni var xyz = 123; //Riga terminata con “;” var abc = “ciao mondo” // Riga terminata senza “;” var abc = 1 + 2; // l'eccezione I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 32. Commentare il codice // Commento su singola linea /* 32 Commento su più linee */ /** * Commento in formato javadoc */ I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 33. Blocchi condizionali - if Per descrivere dei blocchi di codice si usano “{” e “}”. “If” esegue un blocco di codice se la condizione 33 “expression” si verifica. Altrimenti esegue l'“alternativa” if(expression){ … } else { … } I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 34. Blocchi condizionali - switch Controlla se l'espressione assume uno dei possibili valori switch(expression){ case(value1): … 34 break; case(value2): … break; default: … break; } I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 35. Cicli iterativi Blocco di codice ripetuto fino al verificarsi di una precisa condizione. for(var i=0; i<100; i++){ … 35 } for(keys in object){ … } while(i++<100){ … } I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 36. Gli array L'elemento di un array è referenziato tramite un indice descritto tra parentesi quadre. var myArray = new Array(); 36 myArray[0] = 1; myArray[1] = “lorem ipsum”; myArray[2] = true; Esistono inoltre array Associativi myArray[“chiave”] = 123; I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 37. Gli oggetti I metodi e le proprietà di un oggetto sono referenziate tramite “.” alert(document.title) 37 window.location.href = “http://192.168.0.1/index.htm” Ma un oggetto in Javascript equivale ad un array associativo: document['title'] == document.title I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 38. Cosa sono gli oggetti Ogni cosa in JavaScript è o un valore primitivo o un oggetto. Gli oggetti sono entità dotate di unicità (sono uguali solo a sé stessi) e che associano nomi di proprietà a valori. function Home(){ this.windows = 8; 38 this.doors = 1; this.flors = 2; this.doorIsOpened = false; function openDoor(){ this.doorIsOpened = true; } … } var home = new Home(); alert(home.doorIsOpened?'La porta è aperta':'La porta è chiusa'); home.openDoor(); alert(home.doorIsOpened?'La porta è aperta':'La porta è chiusa'); I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 39. Estendere gli oggetti ● Javascript è un linguaggio orientato a oggetti basato su prototipi ● l'ereditarietà è fra oggetti, non fra classi. 39 ● gli oggetti ereditano le proprietà dai loro prototipi. ● si possono aggiungere ulteriori proprietà o metodi ai singoli oggetti dopo la creazione. ● ogni oggetto del linguaggio espone una proprietà conosciuta come prototype. I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 40. JSON (da http://www.json.org/ ) JSON is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and 40 generate. It is based on a subset of the JavaScript Programming Language ,Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages[…]. These properties make JSON an ideal data-interchange language. I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 41. Stringhe in JSON 41 I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 42. Numeri in JSON 42 I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 43. Array con JSON Array indicizzato: [ 1, 2, 3, 4, 5 ]; 43 Array associativo: { 'cat': 'foo', 'dog': 'bar' } I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 44. Oggetti con JSON var coords = { X: 100, Y: 110, Z: 25, movePoint: function(offsetX,offsetY,offsetZ){ … 44 }, getPoint: function(){ return { x: this.X, y: this.Y, z: this.Z } } } I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 45. Document Object Model ● È la struttura di un documento HTML/XML esposto sotto forma di oggetto a Javascript 45 ● Ogni elemento ha delle caratteristiche comuni agli altri e alcune “specializzazioni” ● Esistono nodi di tipo TextNode ● E nodi di tipo HTMLNode I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 46. Metodi principali del DOM element.getElementById(<nodeid>) Restituisce il nodo del DOM che ha come attributo id il valore specificato per <nodeid> element.getElementsByTagName(<tagname>) Restituisce un array di elementi del DOM il cui tag è <tagname>. 46 I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 47. Manipolazione degli attributi element.setAttribute(<attribute name>, <value>) Imposta il valore dell'attributo <attribute name> per l'elemento element element.getAttribute(<attribute name>) Restituisce il valore dell'attributo element. 47 <attribute name> per l'elemento I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 48. Navigazione tra i nodi element.parentNode Restituisce il nodo padre del nodo element element.firstChild 48 Restituisce il primo nodo nella struttura del DOM figlio di element. element.lastChild Restituisce l'ultimo nodo nella struttura del DOM figlio di element. element.childNodes Restituisce in un array tutti i nodi figli di element. I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 49. Creare e collocare nodi nel DOM document.createElement(<element type>) Restituisce un elemento di tipo HTML. <element type> corrisponde al tag name dell'elemento. document.createTextNode(<text content>) 49 Restituisce un nodo di tipo testo impostando come contenuto il valore specificato. element.appendChild(<new node>) Imposta come ultimo figlio di element nella struttura del DOM il nodo <new node> che equivale a un oggetto creato con una delle funzioni createElement oppure createTextNode. I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 50. Rimuovere un nodo del DOM element.removeChild(<child node>) Elimina il nodo <child node> figlio di element. 50 var element = document.getElementById('the-div'); var elementFirstChild = element.firstChild; // Rimuovo il primo nodo figlio di element element.removeChild(elementFirstChild) I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 51. Definire il valore di un nodo Rispettando le specifiche W3C: element.nodeValue = "Lorem Ipsum" Imposta il valore del nodo element. Non rispettando le specifiche W3C: element.innerHTML = "<strong>Dolor sit amet</strong>" Imposta il valore HTML dell'elemento element. 51 I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 52. Cos'è un evento? Invocazione di un metodo al verificarsi di una data condizione (click del mouse, 52 pressione tasto della tastiera). Ciascun nodo del DOM espone una serie di eventi intercettabili da javascript I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 53. Tipi di eventi Eventi generati da azioni svolte con il mouse ● onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmouseout, onmousemove Eventi generati dall'interazione utente/tastiera 53 ● onkeypress, onkeydown, onkeyup Eventi della pagina, dei frame e degli object ● onload, onunload,onresize, onerror, onabort Eventi scatenati dall'interazione con un modulo (form) ● onselect, onchange, onsubmit, onreset, onfocus, onblur I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 54. Intercettare un evento Modalità inline: <a href="#" onclick="alert('ciao mondo');">ciao</a> Modalità classica: element.onclick = function(){ alert('ciao mondo'); }; 54 Modalità avanzata suggerita W3C: element.addEventListener( 'click', function(){ alert('ciao mondo'); }); I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 55. Manipolare lo stile Impostando direttamente lo stile sull'elemento: element.style Tramite element.style è possibile modificare tutte le proprietà di stile 55 dell'elemento applicate tramite CSS. Impostando una classe di stile: element.className = "example-class" I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 56. Browser Object Model (BOM) ● window (la finestra del Browser) ● document (il DOM) ● frames 56 ● history (la cronologia della sessione corrente) ● location (la barra degli indirizzi del Browser) ● navigator (proprietà dello User Agent) ● screen (lo schermo del client) I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 57. Oggetto window Proprietà Metodi ● window.status ● window.open(url, nome, prop) la barra di stato del browser apre una finestra ● window.location la pagina visualizzata nella finestra ● window.close( ) 57 ● window.location.href chiude una finestra l'url della pagina visualizzata ● window.parent ● window.history.go(n) la finestra contenitore avanti e indietro nella storia ● window.top la finestra principale ● window.self la finestra della pagina stessa ● window.history la storia di navigazione I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 58. Graceful degradation ● Si progetta per la massa ● Si cura successivamente la minoranza 58 ● Esempi pratici: ● Testo alternativo dell'immagine ● Tabelle per il layout ● Elemento <noscript></noscript> I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 59. Progressive Enhancement – cos'è? ● Progettazione strutturale ● Si parte da una “versione di base” 59 ● Progressivamente si verificano le capacità del browser per esporre nuove e più evolute funzionalità I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 60. Progressive Enhancement – uso #1 ● Pagina HTML Viene caricato il contenuto informativo della pagina 60 ● ● Se il browser supporta i fogli di stile caricherà anche gli stylesheet definiti nel documento (Progressive Enhancement) I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 61. Progressive Enhancement – uso #2 ● Menu a tendina ● Il menu viene presentato come un elenco puntato 61 ● Se Javascript è disponibile vengono caricati i CSS e creati eventuali altri nodi del DOM (Progressive Enhancement) I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 62. Progressive Enhancement – uso #3 ● Validazione Form ● La validazione avviene lato server 62 ● Se Javascript è disponibile viene effettuato il controllo anche lato client (Progressive Enhancement) I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 63. Progressive Enhancement – uso #4 ● Caricamento AJAX di contenuti ● Viene caricata la pagina con link alle risorse 63 ● Viene intercettata la richiesta (Evento click e keypress), caricati i contenuti parziali e annullato l'evento per evitare che ci sia il caricamento completo della pagina (Progressive Enhancement) I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 64. Wi.Li. - Link esterni discrezionali ● Caricamento pagina ● La pagina viene presentata con i comportamenti predefiniti su ciascun link 64 ● Viene creata una selezione per sapere se i link devono essere caricati nella finestra corrente o in una nuova finestra e generati gli handler per intercettare l'evento. (Progressive Enhancement) I linguaggi del Web – Diego La Monica – http://diegolamonica.info International Webmasters Association - http://www.iwa.it
  • 65. I linguaggi del Web (2° Giorno) Diego La Monica – Web Solution Developer Email: me@diegolamonica.info Web: http://diegolamonica.info Twitter: http://twitter.com/jast/ Slide Share: http://slideshare.net/diego.la.monica/ Skype: diego.la.monica Mobile: +39 333 7235382