SlideShare a Scribd company logo
HTML 5 en CSS 3
Fedict – 09/jan/2014

© Fedict 2014. All rights reserved
Agenda


HTML5



CSS 3



Nieuwe APIs (Javascript)



Vragen ?

© Fedict 2014. All rights reserved | p. 2
HTML5

© Fedict 2014. All rights reserved
HTML 5


Meestal bedoelt men hele reeks van specs:




HTML 5 (opmaak)
Allerhande CSS 3 (layout)
Allerhande Javascript APIs (code)



W3C / WhatNG groep



Nooit echt af




5.1 is al in de maak

Veel elementen al ondersteund door browsers


Modernizr script voor oude browsers

© Fedict 2014. All rights reserved | p. 4
HTML 5 (2)


HTML of XML serialisatie




Nieuwe elementen




“los” of “strikt” met sluiten elementen e.d.

O.a. structuur, multimedia

Nieuwe attributen


O.a. invoervelden, accessibility



Oude elementen / attributen verwijderd



“Offline”: caching webpagina's

© Fedict 2014. All rights reserved | p. 5
Nieuwe elementen


Structuur






<header>, <footer, <aside>, <nav>
<section>, <article>
=> verbetering t.o.v <div>, browser kan “slimmer” zijn

Form controls



<progress>, <meter>, <datalist>
<output>

© Fedict 2014. All rights reserved | p. 6
Voorbeeld structuur
<!DOCTYPE html>
<html>
<head><title>Demo page</title></head>
<body>
<header>
<nav>
<a href=”contact.html”>Contact</a>
<a href=”about.html”>About</a>
</nav>
</header>
<footer>Powered by HTML 5</footer>
</body>
</html>

© Fedict 2014. All rights reserved | p. 7
Voorbeeld structuur (2)
…
<section>
<article>
<header>
<h1>Breaking news: it works !</h1>
<p> By John Doe – 7 jan 2014 </p>
</header>
<p>...</p>
</article>
…
</section>
<section>
….

© Fedict 2014. All rights reserved | p. 8
Voorbeeld form output element
<form onsubmit=”return false”
oninput=”o.value = a.valueAsNumber * b.valueAsNumber”>
<input id=”a” value=”0”
type=”number” step=”any”> x
<input id=”b” value=”0”
type=”number” step=”any”> =
<output id=”o” for=”a b”></output>
</form>

© Fedict 2014. All rights reserved | p. 9
Nieuwe elementen (2)


Multimedia








<figure>
<audio>, <video>
<source>, <track>
HTML5 legt geen multimedia formaten op
=> vooral om “player” toe te voegen zonder Flash / JS

Overige



<time datetime=”2014-01-09”>vandaag </time>
Deze tekst bevat een <mark> zoekterm </mark>

© Fedict 2014. All rights reserved | p. 10
Voorbeeld multimedia
<video controls loop
width=”300” height=”200”
poster=”http://fedict.be/logo.jpg”
src=”http://fedict.be/video.mpg”>
<p>You can also
<a href=”http://fedict.be/video.mpg”>download the video</p>
</video>
<audio>
<source src=”http://fedict.be/sound.mp3” />
<source src=”http://fedict.be/sound.wav” />
<track kind=”subtitles”
src=”http://fedict.be/subtitle_en.srt”
srclang=”en” label=”English” />
</audio>

© Fedict 2014. All rights reserved | p. 11
Nieuwe attributen


Op <input> element






Type: number, tel, search, url, email, range, color
Validatie: min, max, step, required, pattern
Varia: form, placeholder

=> minder javascript nodig voor validatie


Ook consistentere look'n'feel over verschillende sites

© Fedict 2014. All rights reserved | p. 12
Nieuwe attributen (2)


Bewerken content





Toegankelijkheid




contenteditable, spellcheck, translate
draggable, dropzone

role, aria-*

Semantiek (microdata / RDFa)


typeof, property

© Fedict 2014. All rights reserved | p. 13
Voorbeeld invoervelden
<form role=”search”>
<input name=”search” type=”search” placeholder=”search term”/>
...
</form>
<form role=”form”>
<input name=”contact”
type=”email” multiple />
<input name=”happy”
type=”range” min=”0” max=”100” step=”5” />
<input name=”favorite”
type=”url” required />
...
</form>

© Fedict 2014. All rights reserved | p. 14
Nieuwe elementen (3)


Canvas





Plaats om te tekenen
=> (javascript) games

SVG (Scalable Vector Graphics)




Was al afzonderlijke specificatie
2D tekeningen in XML
=> logo's, plattegronden, grafieken, iconen, ...

© Fedict 2014. All rights reserved | p. 15
Verouderde elementen


Layout





Frames





<center>, <font>, <strike>, <u>
=> via CSS

<frame>, <frameset>, <noframes>
=> frames zijn “out”

Allerlei



<applet>
=> <object> gebruiken

© Fedict 2014. All rights reserved | p. 16
CSS3

© Fedict 2014. All rights reserved
Cascading Style Sheets


Scheiden content en visuele opmaak




CSS 3 is een groepering van allerlei delen





Vb: lettertype, kleur tekst, marges, …

Gekende “Level 1” en “Level 2” maar dan modulair
Plus allerlei nieuwe modules

Browser-ondersteuning varieert




Zelfs in recentste browsers werkt niet alles
Verschil tussen browsers
Soms browser-specifieke prefix nodig (= dubbel werk)

© Fedict 2014. All rights reserved | p. 18
Enkele CSS 3 modules


Selectors Level 3



Multiple Columns




Makkelijker om content in 3, 4, … kolommen te plaatsen

Effecten




Text Effects, Fonts, Gradients
2D / 3D Transforms, Transitions, Animations
=> logo's, achtergronden, titelblokken, ...

© Fedict 2014. All rights reserved | p. 19
Voorbeeld meerdere kolommen
div.multicol {
/* Firefox*/
-moz-column-count: 3;
-moz-column-rule : 3px outset #ff0000;
/* Safari en Chrome */
-webkit-column-count: 3;
-webkit-column-rule : 3px outset #ff0000;

}

/* Volgens standaard */
column-count: 3;
column-rule :3px outset #ff0000;

© Fedict 2014. All rights reserved | p. 20
Selectors


Alle of enkel bepaalde elementen / attributen










Eerste / laatste / elk N-de / …
Alle van een bepaalde “class” / enkel met ID
Met naam beginnend met / eindigend op
Element voor / na dit element
Reeds bezochte links
Actieve / niet-actieve optie
Combinaties

=> minder server code voor “special effects”

© Fedict 2014. All rights reserved | p. 21
Voorbeeld selectors
/* rijen in tabel afwisselend in verschillende kleuren */
tr:nth-child(odd) { background: black }
tr:nth-child(even) { background: white }
/* “PDF” toevoegen aan linken eindigend op .pdf */
a[href$=".pdf"] :after { content: “ (PDF) “ }
/* aanpassen kleur van geselecteerde tekst (beperkt) */
::selection { color: red }
/* lettertype aanpassen van alles wat GEEN paragraaf is */
p { font-style: normal }
:not(p) { font-style: italic }

© Fedict 2014. All rights reserved | p. 22
Animation, 2D / 3D Transform


Transformatie





Animatie





translate (move), scale, skew, rotate, matrix
Combineren mogelijk (vb: roteren + vergroten)

Verschillende stappen
Opties: herhaling, vertraging, timing, totale duur...

=> vervanging “simpele” Flash animaties

© Fedict 2014. All rights reserved | p. 23
Voorbeeld animatie / transformatie
img.anim {
position: absolute;
animation: myrotate 6s infinite ;
}
@keyframes myrotate {
from { left: 10px;
}
50% { transform: rotate(-180deg) scale(2);
left: 110px;
}
to { transform: rotate(360deg);
left: 210px;
}
}

© Fedict 2014. All rights reserved | p. 24
Javascript APIs

© Fedict 2014. All rights reserved
Heel wat APIs


Richting “mobile devices”






Storage en communicatie





Geolocation API
Battery Status, Vibration, DeviceOrientation Event …
Full Screen, Page Visibility

File API, Database APIs
WebSocket, WebRTC

Andere



Media Capture / Streams, WebAudio
WebCrypto, WebCrypto Key Discovery

© Fedict 2014. All rights reserved | p. 26
Geolocation API


Huidige geografische locatie




Geografische coordinaten, geen adres




Eventueel omzetten via service (Google, OSM ...)

Gebruiker moet expliciet toestemming geven




Via GPS, Wifi, …

Sommige browsers sturen Wifi-info naar o.a. Google

=> “nieuws in mijn gemeente”, reclame

© Fedict 2014. All rights reserved | p. 27
Voorbeeld Geolocation
var p = document.getElementById('location');
var options = { timeout: 1000, enableHighAccuracy: true };
function success(pos) {
p.innerHTML = 'N : ' + pos.coords.latitude + ', ' +
'E: ' + pos.coords.longitude + ', ' +
'Nauwkeurig (+/- m): ' + pos.coords.accuracy;
};
function error(e) {
p.innerHTML = 'FOUT ' + e.code + ' : ' + e.message;
};
navigator.geolocation.getCurrentPosition(success, error, options);

© Fedict 2014. All rights reserved | p. 28
Web Storage


“cookies on steroids”



Eenvoudige key / value strings



Iets geavanceerdere Indexed DB in voorbereiding
Web SQL (nog een andere API) is deprecated



Instelbaar maximum MB disk space



Permanent of tot einde sessie



localStorage: in alle tabs, ook na sluiten browser
sessionStorage: per tab, tot sluiten tab

© Fedict 2014. All rights reserved | p. 29
File API


Toegang tot lokale files



Client-side (dus zonder upload)



Opvragen type, grootte, datum van bestand
Inlezen bestanden in browser

© Fedict 2014. All rights reserved | p. 30
Voorbeeld File API
var f = document.getElementById('file');
var i = document.getElementById('info');
function whenFileSelected(e) {
var file = e.target.files[0];

}

i.innerHTML = file.type + ' (' +
file.size + ' bytes) ' +
file.lastModifiedDate;

f.addEventListener('change', whenFileSelected, false);

© Fedict 2014. All rights reserved | p. 31
Web Workers


Threads




Communicatie naar / tussen WW via JSON

Uitvoeren scripts zonder pagina te blokkeren



Ophalen data in de achtergrond
Complexe tekeningen op <canvas>

© Fedict 2014. All rights reserved | p. 32
Vragen ?

© Fedict 2014. All rights reserved
Linken


Specificaties





Bijkomende info







http://www.whatwg.org/specs/web-apps/current-work/
http://www.w3.org/TR/html51

http://www.html5rocks.com
http://html5doctor.com
http://mobilehtml5.org
http://caniuse.com

Tools



http://validator.w3.org
http://modernizr.com
© Fedict 2014. All rights reserved | p. 34
Linken (2)


Demo's:



http://www.1stwebdesigner.com/css/advanced-css-text-ef
fects-web-typography-tips/
http://designinstruct.com/web-design/examples-html5-can
vas/

© Fedict 2014. All rights reserved | p. 35
Bedankt !
Bart Hanssens / Fedict
@BartHanssens
bart.hanssens [at] fedict.be | www.fedict.belgium.be

© Fedict 2014. All rights reserved

More Related Content

PPT
Ict2 trm- werking internet
PPT
PPTX
Adobe cloud software
PDF
Titrovo.it noleggio domini web
PDF
Plan vida copia
ODP
Open Data: DCAT en tools
ODP
Introductie Drupal development
ODP
IPv6 omzendbrief
Ict2 trm- werking internet
Adobe cloud software
Titrovo.it noleggio domini web
Plan vida copia
Open Data: DCAT en tools
Introductie Drupal development
IPv6 omzendbrief

Viewers also liked (15)

ODP
Sentiment analysis 20140910
ODP
Websites testen met Selenium
PPT
Cataluña y país vasco NURIA MURCIA RABADÁN
ODP
Publiceren met SKOS
PDF
DCAT-AP exchanging metadata
PDF
Intec ipv6-201306182
PDF
Inleiding HTTP/2
ODP
Introductie RDF
PDF
Relex Finale
ODP
Drupal Simple DCAT Export module
ODP
Websites testen met Selenium en Behave
ODP
Insu Eid 20111018
PDF
Ecp digitalehandtekening 20131203
PDF
Inleiding Internet of Things
PDF
OIDC16: Open Data in Belgium
Sentiment analysis 20140910
Websites testen met Selenium
Cataluña y país vasco NURIA MURCIA RABADÁN
Publiceren met SKOS
DCAT-AP exchanging metadata
Intec ipv6-201306182
Inleiding HTTP/2
Introductie RDF
Relex Finale
Drupal Simple DCAT Export module
Websites testen met Selenium en Behave
Insu Eid 20111018
Ecp digitalehandtekening 20131203
Inleiding Internet of Things
OIDC16: Open Data in Belgium
Ad

Similar to HTML 5 en CSS 3 (20)

PDF
Refresher HTML(5) and CSS(3) - CC FE & UX
PPT
Toegankelijkheid
PDF
Html5 jeugdwerknet
PDF
Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze
PPTX
HTML5 Overview
PPTX
App academy - Parse
PDF
Plone add-on packages uit Nederland - Fred van Dijk
PPTX
Voordeel halen uit zoekmachines en semantic web
PPTX
Rollbase via de REST adapter koppelen met OpenEdge
PPT
Flex In De Praktijk
PPT
Presentatie WordPress Theme Frameworks WordCamp NL 2010
PDF
Toegankelijke en semantische HTML formulieren
PPT
Prosite Webinar 2010
KEY
Website-tool: CMS of Framework
PPTX
UiTwidgets build on Drupal7 by CultuurNet
PPTX
PPT
Lucius Drupal Development Cursus
PDF
Presentatie webrichtlijnen
PDF
WSO2 Mashup Server
PPTX
Magento cursus: theme opzetten & beheren
Refresher HTML(5) and CSS(3) - CC FE & UX
Toegankelijkheid
Html5 jeugdwerknet
Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze
HTML5 Overview
App academy - Parse
Plone add-on packages uit Nederland - Fred van Dijk
Voordeel halen uit zoekmachines en semantic web
Rollbase via de REST adapter koppelen met OpenEdge
Flex In De Praktijk
Presentatie WordPress Theme Frameworks WordCamp NL 2010
Toegankelijke en semantische HTML formulieren
Prosite Webinar 2010
Website-tool: CMS of Framework
UiTwidgets build on Drupal7 by CultuurNet
Lucius Drupal Development Cursus
Presentatie webrichtlijnen
WSO2 Mashup Server
Magento cursus: theme opzetten & beheren
Ad

More from Bart Hanssens (20)

PPTX
OpenFed, a Drupal distribution
PPTX
Open Summer of Code in Belgium
PPTX
Open Belgium 2022: Prepare To Code
PPTX
Werkgroep metadata: INSPIRE - DCAT-AP mapping
PPTX
Overzicht DCAT-AP
PPTX
Quarkus, Jib én OpenJ9
PDF
Open Data at the Federal Level 2021
PDF
Open Data workshop Agoria ICT
PDF
Atelier Open Data / Agoria ICT
PPTX
Open Source and Open Data
PDF
Données ouvertes
PDF
Open Data
PPTX
Open Community Projects
PPTX
From webform to API using microframeworks
PPTX
Linked Data: Introductie
PPTX
JavaVMs en GraalVM
PDF
Open data, what's cooking at the federal level 2020
PPTX
BOSA DG DT: opendata et intégrateur de services
PPTX
Local and Regional digital transformation in Belgium
PPTX
Presentatie data.gov.be
OpenFed, a Drupal distribution
Open Summer of Code in Belgium
Open Belgium 2022: Prepare To Code
Werkgroep metadata: INSPIRE - DCAT-AP mapping
Overzicht DCAT-AP
Quarkus, Jib én OpenJ9
Open Data at the Federal Level 2021
Open Data workshop Agoria ICT
Atelier Open Data / Agoria ICT
Open Source and Open Data
Données ouvertes
Open Data
Open Community Projects
From webform to API using microframeworks
Linked Data: Introductie
JavaVMs en GraalVM
Open data, what's cooking at the federal level 2020
BOSA DG DT: opendata et intégrateur de services
Local and Regional digital transformation in Belgium
Presentatie data.gov.be

HTML 5 en CSS 3

  • 1. HTML 5 en CSS 3 Fedict – 09/jan/2014 © Fedict 2014. All rights reserved
  • 2. Agenda  HTML5  CSS 3  Nieuwe APIs (Javascript)  Vragen ? © Fedict 2014. All rights reserved | p. 2
  • 3. HTML5 © Fedict 2014. All rights reserved
  • 4. HTML 5  Meestal bedoelt men hele reeks van specs:    HTML 5 (opmaak) Allerhande CSS 3 (layout) Allerhande Javascript APIs (code)  W3C / WhatNG groep  Nooit echt af   5.1 is al in de maak Veel elementen al ondersteund door browsers  Modernizr script voor oude browsers © Fedict 2014. All rights reserved | p. 4
  • 5. HTML 5 (2)  HTML of XML serialisatie   Nieuwe elementen   “los” of “strikt” met sluiten elementen e.d. O.a. structuur, multimedia Nieuwe attributen  O.a. invoervelden, accessibility  Oude elementen / attributen verwijderd  “Offline”: caching webpagina's © Fedict 2014. All rights reserved | p. 5
  • 6. Nieuwe elementen  Structuur     <header>, <footer, <aside>, <nav> <section>, <article> => verbetering t.o.v <div>, browser kan “slimmer” zijn Form controls   <progress>, <meter>, <datalist> <output> © Fedict 2014. All rights reserved | p. 6
  • 7. Voorbeeld structuur <!DOCTYPE html> <html> <head><title>Demo page</title></head> <body> <header> <nav> <a href=”contact.html”>Contact</a> <a href=”about.html”>About</a> </nav> </header> <footer>Powered by HTML 5</footer> </body> </html> © Fedict 2014. All rights reserved | p. 7
  • 8. Voorbeeld structuur (2) … <section> <article> <header> <h1>Breaking news: it works !</h1> <p> By John Doe – 7 jan 2014 </p> </header> <p>...</p> </article> … </section> <section> …. © Fedict 2014. All rights reserved | p. 8
  • 9. Voorbeeld form output element <form onsubmit=”return false” oninput=”o.value = a.valueAsNumber * b.valueAsNumber”> <input id=”a” value=”0” type=”number” step=”any”> x <input id=”b” value=”0” type=”number” step=”any”> = <output id=”o” for=”a b”></output> </form> © Fedict 2014. All rights reserved | p. 9
  • 10. Nieuwe elementen (2)  Multimedia       <figure> <audio>, <video> <source>, <track> HTML5 legt geen multimedia formaten op => vooral om “player” toe te voegen zonder Flash / JS Overige   <time datetime=”2014-01-09”>vandaag </time> Deze tekst bevat een <mark> zoekterm </mark> © Fedict 2014. All rights reserved | p. 10
  • 11. Voorbeeld multimedia <video controls loop width=”300” height=”200” poster=”http://fedict.be/logo.jpg” src=”http://fedict.be/video.mpg”> <p>You can also <a href=”http://fedict.be/video.mpg”>download the video</p> </video> <audio> <source src=”http://fedict.be/sound.mp3” /> <source src=”http://fedict.be/sound.wav” /> <track kind=”subtitles” src=”http://fedict.be/subtitle_en.srt” srclang=”en” label=”English” /> </audio> © Fedict 2014. All rights reserved | p. 11
  • 12. Nieuwe attributen  Op <input> element     Type: number, tel, search, url, email, range, color Validatie: min, max, step, required, pattern Varia: form, placeholder => minder javascript nodig voor validatie  Ook consistentere look'n'feel over verschillende sites © Fedict 2014. All rights reserved | p. 12
  • 13. Nieuwe attributen (2)  Bewerken content    Toegankelijkheid   contenteditable, spellcheck, translate draggable, dropzone role, aria-* Semantiek (microdata / RDFa)  typeof, property © Fedict 2014. All rights reserved | p. 13
  • 14. Voorbeeld invoervelden <form role=”search”> <input name=”search” type=”search” placeholder=”search term”/> ... </form> <form role=”form”> <input name=”contact” type=”email” multiple /> <input name=”happy” type=”range” min=”0” max=”100” step=”5” /> <input name=”favorite” type=”url” required /> ... </form> © Fedict 2014. All rights reserved | p. 14
  • 15. Nieuwe elementen (3)  Canvas    Plaats om te tekenen => (javascript) games SVG (Scalable Vector Graphics)    Was al afzonderlijke specificatie 2D tekeningen in XML => logo's, plattegronden, grafieken, iconen, ... © Fedict 2014. All rights reserved | p. 15
  • 16. Verouderde elementen  Layout    Frames    <center>, <font>, <strike>, <u> => via CSS <frame>, <frameset>, <noframes> => frames zijn “out” Allerlei   <applet> => <object> gebruiken © Fedict 2014. All rights reserved | p. 16
  • 17. CSS3 © Fedict 2014. All rights reserved
  • 18. Cascading Style Sheets  Scheiden content en visuele opmaak   CSS 3 is een groepering van allerlei delen    Vb: lettertype, kleur tekst, marges, … Gekende “Level 1” en “Level 2” maar dan modulair Plus allerlei nieuwe modules Browser-ondersteuning varieert    Zelfs in recentste browsers werkt niet alles Verschil tussen browsers Soms browser-specifieke prefix nodig (= dubbel werk) © Fedict 2014. All rights reserved | p. 18
  • 19. Enkele CSS 3 modules  Selectors Level 3  Multiple Columns   Makkelijker om content in 3, 4, … kolommen te plaatsen Effecten    Text Effects, Fonts, Gradients 2D / 3D Transforms, Transitions, Animations => logo's, achtergronden, titelblokken, ... © Fedict 2014. All rights reserved | p. 19
  • 20. Voorbeeld meerdere kolommen div.multicol { /* Firefox*/ -moz-column-count: 3; -moz-column-rule : 3px outset #ff0000; /* Safari en Chrome */ -webkit-column-count: 3; -webkit-column-rule : 3px outset #ff0000; } /* Volgens standaard */ column-count: 3; column-rule :3px outset #ff0000; © Fedict 2014. All rights reserved | p. 20
  • 21. Selectors  Alle of enkel bepaalde elementen / attributen         Eerste / laatste / elk N-de / … Alle van een bepaalde “class” / enkel met ID Met naam beginnend met / eindigend op Element voor / na dit element Reeds bezochte links Actieve / niet-actieve optie Combinaties => minder server code voor “special effects” © Fedict 2014. All rights reserved | p. 21
  • 22. Voorbeeld selectors /* rijen in tabel afwisselend in verschillende kleuren */ tr:nth-child(odd) { background: black } tr:nth-child(even) { background: white } /* “PDF” toevoegen aan linken eindigend op .pdf */ a[href$=".pdf"] :after { content: “ (PDF) “ } /* aanpassen kleur van geselecteerde tekst (beperkt) */ ::selection { color: red } /* lettertype aanpassen van alles wat GEEN paragraaf is */ p { font-style: normal } :not(p) { font-style: italic } © Fedict 2014. All rights reserved | p. 22
  • 23. Animation, 2D / 3D Transform  Transformatie    Animatie    translate (move), scale, skew, rotate, matrix Combineren mogelijk (vb: roteren + vergroten) Verschillende stappen Opties: herhaling, vertraging, timing, totale duur... => vervanging “simpele” Flash animaties © Fedict 2014. All rights reserved | p. 23
  • 24. Voorbeeld animatie / transformatie img.anim { position: absolute; animation: myrotate 6s infinite ; } @keyframes myrotate { from { left: 10px; } 50% { transform: rotate(-180deg) scale(2); left: 110px; } to { transform: rotate(360deg); left: 210px; } } © Fedict 2014. All rights reserved | p. 24
  • 25. Javascript APIs © Fedict 2014. All rights reserved
  • 26. Heel wat APIs  Richting “mobile devices”     Storage en communicatie    Geolocation API Battery Status, Vibration, DeviceOrientation Event … Full Screen, Page Visibility File API, Database APIs WebSocket, WebRTC Andere   Media Capture / Streams, WebAudio WebCrypto, WebCrypto Key Discovery © Fedict 2014. All rights reserved | p. 26
  • 27. Geolocation API  Huidige geografische locatie   Geografische coordinaten, geen adres   Eventueel omzetten via service (Google, OSM ...) Gebruiker moet expliciet toestemming geven   Via GPS, Wifi, … Sommige browsers sturen Wifi-info naar o.a. Google => “nieuws in mijn gemeente”, reclame © Fedict 2014. All rights reserved | p. 27
  • 28. Voorbeeld Geolocation var p = document.getElementById('location'); var options = { timeout: 1000, enableHighAccuracy: true }; function success(pos) { p.innerHTML = 'N : ' + pos.coords.latitude + ', ' + 'E: ' + pos.coords.longitude + ', ' + 'Nauwkeurig (+/- m): ' + pos.coords.accuracy; }; function error(e) { p.innerHTML = 'FOUT ' + e.code + ' : ' + e.message; }; navigator.geolocation.getCurrentPosition(success, error, options); © Fedict 2014. All rights reserved | p. 28
  • 29. Web Storage  “cookies on steroids”  Eenvoudige key / value strings   Iets geavanceerdere Indexed DB in voorbereiding Web SQL (nog een andere API) is deprecated  Instelbaar maximum MB disk space  Permanent of tot einde sessie   localStorage: in alle tabs, ook na sluiten browser sessionStorage: per tab, tot sluiten tab © Fedict 2014. All rights reserved | p. 29
  • 30. File API  Toegang tot lokale files  Client-side (dus zonder upload)   Opvragen type, grootte, datum van bestand Inlezen bestanden in browser © Fedict 2014. All rights reserved | p. 30
  • 31. Voorbeeld File API var f = document.getElementById('file'); var i = document.getElementById('info'); function whenFileSelected(e) { var file = e.target.files[0]; } i.innerHTML = file.type + ' (' + file.size + ' bytes) ' + file.lastModifiedDate; f.addEventListener('change', whenFileSelected, false); © Fedict 2014. All rights reserved | p. 31
  • 32. Web Workers  Threads   Communicatie naar / tussen WW via JSON Uitvoeren scripts zonder pagina te blokkeren   Ophalen data in de achtergrond Complexe tekeningen op <canvas> © Fedict 2014. All rights reserved | p. 32
  • 33. Vragen ? © Fedict 2014. All rights reserved
  • 36. Bedankt ! Bart Hanssens / Fedict @BartHanssens bart.hanssens [at] fedict.be | www.fedict.belgium.be © Fedict 2014. All rights reserved