3. “HTML5 will reach the
“Proposed Recommendation”
stage sometime in 2022.” [1]
Ian Hickson, editor of the HTML5 specification.
4. “La fascinazione di grandi
misteri, la vertigine di
domande inquietanti.
Una originale, strabiliante,
ipotesi su quello che
potrebbe accadere all'alba [1]
del 21 dicembre 2012.”
Roberto Giacobbo, conduttore di “Voyager”
5. Questa sarà una
presentazione su quel che
dovete sapere per affrontare
HTML5, poi starà a voi andare
a metterci le mani...
6. 5
Vorrei prima però mettervi in
guardia da un pericolo che si
aggira fra gli “addetti ai lavori”.
15. Hypertext Markup Language - 2.0
September 22, 1995 [2]
HTML 3.2 Specification - W3C Recommendation
14 January 1997 [3]
HTML 4.01 Specification - W3C Recommendation
24 December 1999 [4]
HTML 5 - A vocabulary and associated APIs for HTML
and XHTML - W3C Working Draft
25 August 2009 [5]
16. “This specification defines the 5th major revision of the
core language of the World Wide Web: the Hypertext
Markup Language (HTML). In this version, new features
are introduced to help Web application authors,
new elements are introduced based on research into
prevailing authoring practices, and special attention has
been given to defining clear conformance criteria for
user agents in an effort to improve interoperability.
This specification is intended to replace (be a new
version of) what was previously the HTML4, XHTML 1.0,
and DOM2 HTML specifications.”
17.
18. Il documento di specifiche
in formato A4 consta di
ben 690 pagine... [6]
19. Il documento di specifiche
in formato A4 consta di
ben 690 pagine... [6]
(Un vero mattone!)
22. “HTML5 again mired in
corporate politics, egotism,
squabbles and petty
disagreements.” [8]
Andy Clarke, Stuff and Nonsense
23. “So vaguely defined.” [9]
“The continuation of Web2.0
by other means.” [9]
“The HTML5 drag and drop
module is not just a disaster,
it’s a fucking disaster.” [10]
Peter-Paul Koch (a.k.a. “PPK”), QuirksMode
24. “Proposing a timeline 13
years out in this industry,
c’mon… it’s ridiculous!” [11]
Jeff Croft
36. Best practice: DOM detection
Quattro tecniche base: [12]
1. Verificare se una certa proprietà esiste per un oggetto di
tipo globale (window o navigator)
2. Creare un elemento, quindi verificare se una certa proprietà
esiste per l’elemento appena creato
3. Creare un elemento, verificare se un certo metodo esiste
per l’elemento, chiamare il metodo e verificare il risultato
4. Creare un elemento, assegnare un valore a una sua
proprietà, quindi verificare se il valore per quella proprietà
coincide con quello assegnato
43. Novità nel linguaggio: [21]
• introduzione di nuovi elementi semantici
• introduzione di nuovi attributi (anche “custom”)
• eliminazione elementi/attributi obsoleti
• definizione di un nuovo doctype
• definizione di nuove regole di sintassi
44. Introduzione di nuove API per semplificare lo sviluppo
di applicazioni web: [21]
• disegno bidimensionale su canvas
• riproduzione audio/video integrata (plugin)
• gestione di storage di dati locali
• geo-localizzazione dell’utente
• gestione dello stato offline delle pagine web
• utilizzo di processi paralleli e in background
45. E molto altro ancora: [21]
• drag&drop
• postMessage
• browser history
• editing nativo
• registerProtocolHandler
• querySelectorAll
63. Alcune possibili applicazioni di un “worker”:
• computazione “pesante”
• interazione con storage/database locali
• comunicazione in background
• molteplici operazioni in parallelo
64. BROWSER NATIVE SUPPORT
var w = new Worker('script.js');
script.js
onmessage = function(event){ };
function run() {
postMessage(...);
}
function done(){
postMessage(...);
}
66. Permette di dichiarare, tramite un apposito file
testuale (“manifest”) quali elementi e risorse devono
essere salvate in cache per permettere la
consultazione e fruizione della pagina anche
quando il browser è in modalità disconnessa.
I file salvati in cache possono essere di qualunque
tipo: HTML, CSS, JavaScript, immagini, video, ecc.
69. Permette di salvare i dati in uno pseudo-database
presente nel browser, sia in locale, e quindi in modo
persistente, che in sessione, e quindi temporaneo.
I vantaggi rispetto all’uso dei cookie sono:
• maggiore spazio disponibile
• i dati non vengono inviati al server (no overhead)
70. Alcune possibili applicazioni di uno “storage”:
• salvataggio preferenze utente
• carrello acquisti
• memorizzazione testi/articoli preferiti
• auto-save delle attività in corso
• caching delle informazioni e dei contenuti
73. Ci dirigiamo (a lenti passi)
verso un futuro radioso...
Nel frattempo, aspettiamo e
vediamo che succede, tanto
con i vecchi browser ancora [1]
in giro abbiamo la scusa che
non è supportato...
74. Sicuramente ancora un po’ “acerbo”
Può essere usato in sistemi chiusi
Richiede la graceful-degradation
Alcune feature molto promettenti
75. “Se il giorno è dàdà
la notte sarà
dàdà... dapaura!”