SlideShare a Scribd company logo
1 of 76
Download to read offline
HTML ?
    Dr. Sabin Buraga
 www.purl.org/net/busaco
HTML !
“scurtă” introducere: aspecte esențiale
Ce este HTML5?
vocabular (set de elemente + atribute)
   pentru marcarea paginilor Web
suită de API-uri
facilitând procesarea documentelor
permite dezvoltarea standardizată de aplicații
 Web pe baza unor API-uri specificate formal
conținut structurat având prezentări complexe via CSS3
independența de dispozitivubicuitate & accesibilitate
multitudine de conținuturiinteracțiune & experiență Web
de la Web 2D la Web 3D
API-uri specifice pentru îmbunătățirea performanței Web
API-uri pentru stocare locală (ne)persistentă a datelor
conectivitate între aplicații Web și/sau aplicații “clasice”
date structurate și modelate conceptual
recurge la tehnologii înrudite referitoare la

            prezentare: CSS3
          model (abstract): DOM
          procesare: JavaScript


                  …și altele
inițial, o propunere descrisă de
WHATWG compus din Apple, Mozilla, Opera



  www.whatwg.org/specs/web-apps/current-work/
actualmente, în curs de standardizare la W3C
 cu statut de ciornă în lucru (working draft)



             www.w3.org/TR/html5/
specificațiile redactate de W3C și de WHATWG
                   sunt diferite



 conținut, frecvența actualizărilor, licență de utilizare
Ce aduce nou HTML5?
relaxarea corectitudinii la nivel de sintaxă


           HTML și/sau XHTML
relaxarea corectitudinii la nivel de sintaxă


            HTML și/sau XHTML

     text/html versus application/xhtml+xml
specificarea tipului de document
se poate realiza în mod simplificat


         <!DOCTYPE html>
modelul de reprezentare internă
este bazat pe DOM (Document Object Model)


               DOM HTML5
modelul de reprezentare internă
este bazat pe DOM (Document Object Model)


  eventual, arborele DOM – regăsit la nivel de browser
via un obiect de tip Document – poate fi redat (accesat)
                 de o extensie (plug-in)
noi elemente descriind fluxul informațional
     în stilul POSH (Plain Old Semantic HTML)


  article, aside, audio, canvas, datalist, details, figure,
footer, header, keygen, mark, math, meter, nav, output,
       progress, samp, section, svg, time, video,…
<article>                                                     exemplu
 <header>
    <h1>Titlul articolului</h1>
    <p><time pubdate datetime="2011-08-01T07:33"></time></p>
 </header>
 <p>Conținutul propriu-zis al articolului…</p>
 <aside>Alte resurse de interes</aside>
 <section>
    <h1>Comentarii</h1>
    <article>
      <!-- comentariile sunt considerate note de subsol -->
      <footer>
         <p>Tuxy Pinguinescu</p>
         <p><time pubdate
                   datetime="2011-08-03T01:07-03:03"></time></p>
      </footer>
      <p>Un comentariu</p>
    </article>
 </section>
</article>                         un articol disponibil pe un blog
exemplu

<figure>
  <img src="fii-student.png" alt="Sigla FII Student" />
  <figcaption>FII Student</figcaption>
</figure>


<figure>
  <!-- conținutul nu neapărat trebuie să fie o imagine -->
  <video
     src="http://ferma.info/video/porci.mov">
  </video>
  <figcaption>
     Relatare despre <em>porcii viole(n)ți</em>.
  </figcaption>
</figure>                           specificarea unor figuri
elemente care permit “scufundarea”
altor tipuri de conținuturi într-o pagină Web


 alături de elementele img, iframe, embed și object,
          sunt permise audio, video, source
exemplu


<video src="porcii-verzi.ogg" controls autoplay></video>
…
<script>
// preluăm via DOM obiectul referitor la conținutul video
var video = document.getElementsByTagName ('video')[0];
</script>
<p>
  <input type="button" value="Pauză"
         onclick="video.pause ();">
  <input type="button" value="Rulează"
         onclick="video.play ();"> metodele pause() și play()
</p>                                sunt specificate de interfața
                                         HTMLMediaElement
exemple de evenimente ce pot fi tratate
în ceea ce privește conținutul multimedia:

      loadstart progress suspend abort error
           stalled play pause loadeddata
              waiting playing seeking
         canplay seeked timeupdate ended
    ratechange durationchange volumechange
elemente care permit “scufundarea”
altor tipuri de conținuturi într-o pagină Web


                        plus:
      canvas – grafică raster generată dinamic
 svg – conținut grafic vectorial specificat prin SVG
 math – formule matematice exprimate via MathML
interfața HTMLCanvasElement


permite generarea dinamică de conținut grafic
       dependent de rezoluția curentă
interfața HTMLCanvasElement


permite generarea dinamică de conținut grafic
       dependent de rezoluția curentă

  în prezent – specificație W3C (mai 2011):
 conținut grafic 2D transparent de tip raster
         www.w3.org/TR/2dcontext/
interfața HTMLCanvasElement


 este asociată elementului canvas
interfața HTMLCanvasElement


             este asociată elementului canvas

  navigatoarele Web actuale oferă suport relativ complet
pentru Internet Explorer (versiuni < 9), se poate recurge la
 ExplorerCanvas: http://code.google.com/p/explorercanvas/
prin JavaScript pot fi efectuate


     transformări geometrice de bază
      generarea de căi grafice (paths)
crearea degradé-urilor & redarea umbrelor
    specificarea de conținuturi textuale
      manipularea conținutului grafic
                  …și altele
<html>                                                  exemplu
<head>
 <title>Corola de minuni</title>
 <script type="text/javascript" src="discuri.js"></script>
</head>
<body onclick="javascript:deseneazaDiscuri ()">
 <h1>Fă un click…</h1>
 <canvas id="canvas"
    height="500"
    width="375">
 </canvas>
</body>
</html>
function deseneazaDiscuri () {                       exemplu
 // preluăm contextul de redare 2D
 var context =
   document.getElementById ('canvas').getContext ('2d');

 // stabilim parametrii umbrelor
 context.shadowOffsetX = 3;
 context.shadowOffsetY = 3;
 context.shadowBlur = 33;

 // stabilim parametrii corpului de literă
 context.font = "20pt Arial, Helvetica, sans-serif";
 context.fillText ("Fă un click", 5, 30);

 // translăm...
 context.translate (75, 75);
                                      programul JavaScript
                                 (discuri.js) generând conținutul
for (var i = 1; i < 5; i++) { // generăm 'inele' de discuri exemplu
  // salvăm contextul de redare
  context.save ();
  // stabilim via CSS3 culoarea de umplere a discului curent
  // și ajustăm aleatoriu transparența (alpha)
  context.fillStyle = 'rgba(33,' + (51 * i) + ',' + (255 - 51 * i) + ','
                        + Math.random() + ')';

    for (var j = 0; j < i * 6; j++){ // desenăm discuri
      context.rotate (Math.PI * 2 / (i * 6));
      context.beginPath ();
      context.arc (0, i * 12.5, 5, 0, Math.PI * 2, true);
      context.fill ();
    }
    // restaurăm contextul de redare
    context.restore ();
  }                                          programul JavaScript
}                                       (discuri.js) generând conținutul
un posibil rezultat al execuției codului
(folosind un browser bazat pe WebKit)
exemple demonstrative & resurse:
    www.canvasdemos.com
interacțiunea cu utilizatorul


formularele Web pot include câmpuri suplimentare
interacțiunea cu utilizatorul


           noi tipuri:
      search tel url email
         datetime date
         number range
             color
<label>Adrese suplimentare:                          exemplu
  <input type="email" multiple
         list="adrese" name="cc" />
</label>
…
<datalist id="adrese">
  <option value="tux@pinguin.info" />
  <option value="tuxy.pinguinescu@info.uaic.ro" />
  <option value="tp@alt.undeva.org" />
  …
</datalist>

<input type="date" max="2000-12-31" name="zi-nastere" />
<input type="range" min="1" max="7" step="2"
  name="premii" />
interacțiunea cu utilizatorul


    noi elemente interactive:
details summary command menu
încărcarea & redarea documentelor


       suplimentar față de obiectul Document,
se specifică Window oferind acces la mediul de redare
încărcarea & redarea documentelor


             API-uri de bază:

             ApplicationCache

control asupra cache-ului navigatorului Web
încărcarea & redarea documentelor


                  API-uri de bază:

                  WindowTimers

oferă suport pentru specificarea contoarelor de timp
încărcarea & redarea documentelor


                  API-uri de bază:

                     Navigator

      acces la starea și proprietățile sistemului
via sub-interfețele NavigatorID și NavigatorAbilities
încărcarea & redarea documentelor


                 API-uri de bază:

                  DataTransfer

 stochează fragmente de date în diverse formate
(util și pentru efectuarea operațiilor drag & drop)
încărcarea & redarea documentelor


            API-uri de bază:

             UndoManager

gestionează istoricul comenzilor efectuate
        (undo transaction history)
Există și alte specificații
sau inițiative de interes?
WebSocket API


definește un API abstract pentru transmiterea de date
     pe baza protocolului de transfer WebSocket:
     www.whatwg.org/specs/web-socket-protocol/

            www.w3.org/TR/websockets/
exemplu




// actualizările de date vor fi trimise cu rata de o actualizare
// la fiecare 50ms, dacă există suficientă lățime de bandă
var socket =
 new WebSocket ('ws://joc.undeva.info:1974/updates');
socket.onopen = function () {
 setInterval (function() {
   if (socket.bufferedAmount == 0)
     socket.send (oferaDate ());
   }, 50);
};
Web Messaging

oferă API-uri pentru realizarea transferului de mesaje
          între diverse contexte de navigare


              www.w3.org/TR/postmsg/
Web Messaging

mesajele pot proveni de la server, via socket-uri Web
sau de la alte documente via canale de comunicație
Web Workers

                  “muncitor” (worker) Web:
script rulat în fundal – în accepțiunea daemon-ilor UNIX –
                independent de alte programe
              ce pot interacționa cu utilizatorul
Web Workers

mediul de execuție al unui worker e complet separat,
    codul fiind rulat în paralel, în mod asincron


               http://whatwg.org/ww
Web Storage

  oferă mecanisme de stocare (persistentă) a datelor
la nivel de client sub formă de perechi cheie—valoare


            www.w3.org/TR/webstorage/
Web Storage

maniera de stocare a itemilor se precizează
via atributele sessionStorage și localStorage
Web Storage

    maniera de stocare a itemilor se precizează
    via atributele sessionStorage și localStorage

 stocare nepersistentă
(suport pentru sesiuni)
Web Storage

maniera de stocare a itemilor se precizează
via atributele sessionStorage și localStorage


                          alternativă la cookie-uri
exemplu



<textarea id="editor" placeholder="Începeți să tastați...">
</textarea>


document.querySelector ('#editor').addEventListener ('keyup',
  function (e) { // la fiecare eliberare a tastei…
                 // stocăm conținutul și data editării
    localStorage.setItem ('text', this.value);
    localStorage.setItem ('data', (new Date()).getTime());
  }, false);
Web SQL Database

se referă la un set de API-uri pentru managementul
asincron al bazelor de date la nivel de client via SQL


           www.w3.org/TR/webdatabase/
Web SQL Database

dialectul SQL suportat trebuie să fie cel oferit de SQLite
Web SQL Database

   accesul la baze de date e abstractizat de interfețele
WindowDatabase, WorkerUtilsDatabase, DatabaseCallback
Web SQL Database

     în caz de succes, se va crea un obiect de tip:
      SQLTransaction (tranzacție asincronă) sau
   SQLTransactionSync (tranzacție realizată sincron)

    rezultatele întoarse de server în urma execuției
comenzilor SQL se regăsesc într-un obiect SQLResultSet
<script> new Worker ('actualizator.js'); </script>               exemplu

// deschiderea conexiunii cu baza de date
var server = new WebSocket ('ws://whatwg.org/database');
var db = openDatabase ('demo', '1.0', 'Date demo', 10240);
server.onmessage = function (eveniment) {
 // datele sunt în format "comanda cheie valoare"
 var date = eveniment.data.split (' ');
 switch (date[0]) {
   // inserare a unei valori pe baza cheii
   case '+': db.transaction (function (t) {
     t.executeSql ('INSERT INTO info (cheie, valoare) VALUES (?, ?)',
                     date[1], date[2]); });
   case '-': db.transaction (function (t) { // operația de ștergere
     t.executeSql ('DELETE FROM info WHERE cheie=? AND valoare=?',
                     date[1], date[2]); });
 }                            un worker ce efectuează operații asupra
};                         unei baze de date existente la nivel de client
File API

suită de API-uri pentru manipularea fișierelor
          File Blob FileList FileReader
        BlobBuilder FileWriter FileSaver
                   FileSystem
De unde aflu mai multe?
WHATWG – Web Hypertext
Application Technology Working Group
           www.whatwg.org
http://diveintohtml5.org/
http://www.html5rocks.com/
http://html5boilerplate.com/
http://html5demos.com/
mult succes cu


HTML !
    Dr. Sabin Buraga
 www.purl.org/net/busaco

More Related Content

What's hot

Cu codul în "nori"
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"Sabin Buraga
 
Programare Web - Cookie-uri si sesiuni
Programare Web - Cookie-uri si sesiuniProgramare Web - Cookie-uri si sesiuni
Programare Web - Cookie-uri si sesiuniSabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....Sabin Buraga
 
Programare Web - PHP (o prezentare generala)
Programare Web - PHP (o prezentare generala)Programare Web - PHP (o prezentare generala)
Programare Web - PHP (o prezentare generala)Sabin Buraga
 
Programare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiProgramare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiSabin Buraga
 
Programare Web - Accesul la baze de date prin PHP
Programare Web - Accesul la baze de date prin PHPProgramare Web - Accesul la baze de date prin PHP
Programare Web - Accesul la baze de date prin PHPSabin Buraga
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
 
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5Sabin Buraga
 
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5Sabin Buraga
 
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...Sabin Buraga
 
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
 
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScriptCLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScriptSabin Buraga
 
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6Sabin Buraga
 
Programare Web - Arhitectura WWW
Programare Web - Arhitectura WWWProgramare Web - Arhitectura WWW
Programare Web - Arhitectura WWWSabin Buraga
 
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHPWeb 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHPSabin Buraga
 
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...Sabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....Sabin Buraga
 
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...Sabin Buraga
 
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de clientCLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de clientSabin Buraga
 
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebWeb 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebSabin Buraga
 

What's hot (20)

Cu codul în "nori"
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"
 
Programare Web - Cookie-uri si sesiuni
Programare Web - Cookie-uri si sesiuniProgramare Web - Cookie-uri si sesiuni
Programare Web - Cookie-uri si sesiuni
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....
 
Programare Web - PHP (o prezentare generala)
Programare Web - PHP (o prezentare generala)Programare Web - PHP (o prezentare generala)
Programare Web - PHP (o prezentare generala)
 
Programare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiProgramare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatii
 
Programare Web - Accesul la baze de date prin PHP
Programare Web - Accesul la baze de date prin PHPProgramare Web - Accesul la baze de date prin PHP
Programare Web - Accesul la baze de date prin PHP
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
 
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
 
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
 
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
 
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScriptCLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
 
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
 
Programare Web - Arhitectura WWW
Programare Web - Arhitectura WWWProgramare Web - Arhitectura WWW
Programare Web - Arhitectura WWW
 
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHPWeb 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
 
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
 
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
 
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de clientCLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
 
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebWeb 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
 

Viewers also liked

Introducere in Vizualizarea Datelor cu HTML5 Canvas
Introducere in Vizualizarea Datelor cu HTML5 CanvasIntroducere in Vizualizarea Datelor cu HTML5 Canvas
Introducere in Vizualizarea Datelor cu HTML5 CanvasAlecsandru Grigoriu
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #4): Design Web. Proi...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #4): Design Web. Proi...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #4): Design Web. Proi...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #4): Design Web. Proi...Sabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...Sabin Buraga
 
The History of HTML5
The History of HTML5The History of HTML5
The History of HTML5Mike Wilcox
 
#undef IS_KING
#undef IS_KING#undef IS_KING
#undef IS_KINGkristache
 
3 in 1 - Student Volunteer and Employee
3 in 1 - Student Volunteer and Employee3 in 1 - Student Volunteer and Employee
3 in 1 - Student Volunteer and Employeealinalexandru
 
De ce sa nu folosim Ruby On Rails?
De ce sa nu folosim Ruby On Rails?De ce sa nu folosim Ruby On Rails?
De ce sa nu folosim Ruby On Rails?Bogdan Gaza
 
Student User Experience in Web Design - sweb2010
Student User Experience in Web Design - sweb2010Student User Experience in Web Design - sweb2010
Student User Experience in Web Design - sweb2010Alecsandru Grigoriu
 
Considerații privind cercetarea științifică
Considerații privind cercetarea științificăConsiderații privind cercetarea științifică
Considerații privind cercetarea științificăSabin Buraga
 
NoSQL in the context of Social Web
NoSQL in the context of Social WebNoSQL in the context of Social Web
NoSQL in the context of Social WebBogdan Gaza
 
From virtual to augmented reality
From virtual to augmented realityFrom virtual to augmented reality
From virtual to augmented realitySabin Buraga
 
Introduction to 3D and shaders
Introduction to 3D and shadersIntroduction to 3D and shaders
Introduction to 3D and shadersVictor Porof
 
Web brother is watching you
Web brother is watching youWeb brother is watching you
Web brother is watching youSabin Buraga
 
Design (Web) responsiv
Design (Web) responsivDesign (Web) responsiv
Design (Web) responsivSabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #5): Data Visualizati...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #5): Data Visualizati...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #5): Data Visualizati...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #5): Data Visualizati...Sabin Buraga
 

Viewers also liked (18)

Introducere in Vizualizarea Datelor cu HTML5 Canvas
Introducere in Vizualizarea Datelor cu HTML5 CanvasIntroducere in Vizualizarea Datelor cu HTML5 Canvas
Introducere in Vizualizarea Datelor cu HTML5 Canvas
 
Studentii iau altitudine. FII pe vf. Lenin (august 2011)
Studentii iau altitudine. FII pe vf. Lenin (august 2011)Studentii iau altitudine. FII pe vf. Lenin (august 2011)
Studentii iau altitudine. FII pe vf. Lenin (august 2011)
 
FII la examinări
FII la examinăriFII la examinări
FII la examinări
 
Cosmin Varlan: Stagii pe Bune 2011 la Facultatea de Informatica, UAIC
Cosmin Varlan: Stagii pe Bune 2011 la Facultatea de Informatica, UAICCosmin Varlan: Stagii pe Bune 2011 la Facultatea de Informatica, UAIC
Cosmin Varlan: Stagii pe Bune 2011 la Facultatea de Informatica, UAIC
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #4): Design Web. Proi...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #4): Design Web. Proi...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #4): Design Web. Proi...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #4): Design Web. Proi...
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
 
The History of HTML5
The History of HTML5The History of HTML5
The History of HTML5
 
#undef IS_KING
#undef IS_KING#undef IS_KING
#undef IS_KING
 
3 in 1 - Student Volunteer and Employee
3 in 1 - Student Volunteer and Employee3 in 1 - Student Volunteer and Employee
3 in 1 - Student Volunteer and Employee
 
De ce sa nu folosim Ruby On Rails?
De ce sa nu folosim Ruby On Rails?De ce sa nu folosim Ruby On Rails?
De ce sa nu folosim Ruby On Rails?
 
Student User Experience in Web Design - sweb2010
Student User Experience in Web Design - sweb2010Student User Experience in Web Design - sweb2010
Student User Experience in Web Design - sweb2010
 
Considerații privind cercetarea științifică
Considerații privind cercetarea științificăConsiderații privind cercetarea științifică
Considerații privind cercetarea științifică
 
NoSQL in the context of Social Web
NoSQL in the context of Social WebNoSQL in the context of Social Web
NoSQL in the context of Social Web
 
From virtual to augmented reality
From virtual to augmented realityFrom virtual to augmented reality
From virtual to augmented reality
 
Introduction to 3D and shaders
Introduction to 3D and shadersIntroduction to 3D and shaders
Introduction to 3D and shaders
 
Web brother is watching you
Web brother is watching youWeb brother is watching you
Web brother is watching you
 
Design (Web) responsiv
Design (Web) responsivDesign (Web) responsiv
Design (Web) responsiv
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #5): Data Visualizati...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #5): Data Visualizati...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #5): Data Visualizati...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #5): Data Visualizati...
 

Similar to HTML5? HTML5!

CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
 
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5Sabin Buraga
 
CLIW 2014—2015 (8/12): JavaScript în navigatorul Web
CLIW 2014—2015 (8/12): JavaScript în navigatorul WebCLIW 2014—2015 (8/12): JavaScript în navigatorul Web
CLIW 2014—2015 (8/12): JavaScript în navigatorul WebSabin Buraga
 
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
WADe 2014—2015 (supliment): Dezvoltare Web via node.jsWADe 2014—2015 (supliment): Dezvoltare Web via node.js
WADe 2014—2015 (supliment): Dezvoltare Web via node.jsSabin Buraga
 
Modelarea datelor via XML. Design patterns in contextul specificarii document...
Modelarea datelor via XML. Design patterns in contextul specificarii document...Modelarea datelor via XML. Design patterns in contextul specificarii document...
Modelarea datelor via XML. Design patterns in contextul specificarii document...Sabin Buraga
 
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2Diana Tataran
 
Arhitectura browser-ului Web
Arhitectura browser-ului WebArhitectura browser-ului Web
Arhitectura browser-ului WebSabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...Sabin Buraga
 
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5Sabin Buraga
 
Web 2016 (12/13) Interacțiune Web cu Ajax. Aplicații Web hibride (mash-up-uri)
Web 2016 (12/13) Interacțiune Web cu Ajax. Aplicații Web hibride (mash-up-uri)Web 2016 (12/13) Interacțiune Web cu Ajax. Aplicații Web hibride (mash-up-uri)
Web 2016 (12/13) Interacțiune Web cu Ajax. Aplicații Web hibride (mash-up-uri)Sabin Buraga
 
Biblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptxBiblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptxCostea112
 
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...Sabin Buraga
 
Perechea_1 ro.pdf
Perechea_1 ro.pdfPerechea_1 ro.pdf
Perechea_1 ro.pdfOxanaRabei1
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
 
Prezentare USO - Web Application Integration
Prezentare USO - Web Application IntegrationPrezentare USO - Web Application Integration
Prezentare USO - Web Application Integrationmihneasim
 
Innovation in Publishing - HTML5 and Cloud Computing
Innovation in Publishing - HTML5 and Cloud ComputingInnovation in Publishing - HTML5 and Cloud Computing
Innovation in Publishing - HTML5 and Cloud ComputingMihai Dan Nadas
 

Similar to HTML5? HTML5! (20)

CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
 
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
 
CLIW 2014—2015 (8/12): JavaScript în navigatorul Web
CLIW 2014—2015 (8/12): JavaScript în navigatorul WebCLIW 2014—2015 (8/12): JavaScript în navigatorul Web
CLIW 2014—2015 (8/12): JavaScript în navigatorul Web
 
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
WADe 2014—2015 (supliment): Dezvoltare Web via node.jsWADe 2014—2015 (supliment): Dezvoltare Web via node.js
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
 
Modelarea datelor via XML. Design patterns in contextul specificarii document...
Modelarea datelor via XML. Design patterns in contextul specificarii document...Modelarea datelor via XML. Design patterns in contextul specificarii document...
Modelarea datelor via XML. Design patterns in contextul specificarii document...
 
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
 
Arhitectura browser-ului Web
Arhitectura browser-ului WebArhitectura browser-ului Web
Arhitectura browser-ului Web
 
005. html5 si canvas
005. html5 si canvas005. html5 si canvas
005. html5 si canvas
 
Flori x
Flori xFlori x
Flori x
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...
 
Licenta web aplicatie.pptx
Licenta web aplicatie.pptxLicenta web aplicatie.pptx
Licenta web aplicatie.pptx
 
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
 
Web 2016 (12/13) Interacțiune Web cu Ajax. Aplicații Web hibride (mash-up-uri)
Web 2016 (12/13) Interacțiune Web cu Ajax. Aplicații Web hibride (mash-up-uri)Web 2016 (12/13) Interacțiune Web cu Ajax. Aplicații Web hibride (mash-up-uri)
Web 2016 (12/13) Interacțiune Web cu Ajax. Aplicații Web hibride (mash-up-uri)
 
Biblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptxBiblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptx
 
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...
 
Perechea_1 ro.pdf
Perechea_1 ro.pdfPerechea_1 ro.pdf
Perechea_1 ro.pdf
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
 
Prezentare USO - Web Application Integration
Prezentare USO - Web Application IntegrationPrezentare USO - Web Application Integration
Prezentare USO - Web Application Integration
 
XHTML 2.0
XHTML 2.0XHTML 2.0
XHTML 2.0
 
Innovation in Publishing - HTML5 and Cloud Computing
Innovation in Publishing - HTML5 and Cloud ComputingInnovation in Publishing - HTML5 and Cloud Computing
Innovation in Publishing - HTML5 and Cloud Computing
 

More from Sabin Buraga

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSabin Buraga
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSabin Buraga
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.Sabin Buraga
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSabin Buraga
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSabin Buraga
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSabin Buraga
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)Sabin Buraga
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)Sabin Buraga
 

More from Sabin Buraga (20)

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
 

HTML5? HTML5!

  • 1. HTML ? Dr. Sabin Buraga www.purl.org/net/busaco
  • 4. vocabular (set de elemente + atribute) pentru marcarea paginilor Web
  • 5. suită de API-uri facilitând procesarea documentelor
  • 6. permite dezvoltarea standardizată de aplicații Web pe baza unor API-uri specificate formal
  • 7. conținut structurat având prezentări complexe via CSS3
  • 10. de la Web 2D la Web 3D
  • 11. API-uri specifice pentru îmbunătățirea performanței Web
  • 12. API-uri pentru stocare locală (ne)persistentă a datelor
  • 13. conectivitate între aplicații Web și/sau aplicații “clasice”
  • 14. date structurate și modelate conceptual
  • 15. recurge la tehnologii înrudite referitoare la prezentare: CSS3 model (abstract): DOM procesare: JavaScript …și altele
  • 16. inițial, o propunere descrisă de WHATWG compus din Apple, Mozilla, Opera www.whatwg.org/specs/web-apps/current-work/
  • 17. actualmente, în curs de standardizare la W3C cu statut de ciornă în lucru (working draft) www.w3.org/TR/html5/
  • 18. specificațiile redactate de W3C și de WHATWG sunt diferite conținut, frecvența actualizărilor, licență de utilizare
  • 19. Ce aduce nou HTML5?
  • 20. relaxarea corectitudinii la nivel de sintaxă HTML și/sau XHTML
  • 21. relaxarea corectitudinii la nivel de sintaxă HTML și/sau XHTML text/html versus application/xhtml+xml
  • 22. specificarea tipului de document se poate realiza în mod simplificat <!DOCTYPE html>
  • 23. modelul de reprezentare internă este bazat pe DOM (Document Object Model) DOM HTML5
  • 24. modelul de reprezentare internă este bazat pe DOM (Document Object Model) eventual, arborele DOM – regăsit la nivel de browser via un obiect de tip Document – poate fi redat (accesat) de o extensie (plug-in)
  • 25. noi elemente descriind fluxul informațional în stilul POSH (Plain Old Semantic HTML) article, aside, audio, canvas, datalist, details, figure, footer, header, keygen, mark, math, meter, nav, output, progress, samp, section, svg, time, video,…
  • 26. <article> exemplu <header> <h1>Titlul articolului</h1> <p><time pubdate datetime="2011-08-01T07:33"></time></p> </header> <p>Conținutul propriu-zis al articolului…</p> <aside>Alte resurse de interes</aside> <section> <h1>Comentarii</h1> <article> <!-- comentariile sunt considerate note de subsol --> <footer> <p>Tuxy Pinguinescu</p> <p><time pubdate datetime="2011-08-03T01:07-03:03"></time></p> </footer> <p>Un comentariu</p> </article> </section> </article> un articol disponibil pe un blog
  • 27. exemplu <figure> <img src="fii-student.png" alt="Sigla FII Student" /> <figcaption>FII Student</figcaption> </figure> <figure> <!-- conținutul nu neapărat trebuie să fie o imagine --> <video src="http://ferma.info/video/porci.mov"> </video> <figcaption> Relatare despre <em>porcii viole(n)ți</em>. </figcaption> </figure> specificarea unor figuri
  • 28. elemente care permit “scufundarea” altor tipuri de conținuturi într-o pagină Web alături de elementele img, iframe, embed și object, sunt permise audio, video, source
  • 29. exemplu <video src="porcii-verzi.ogg" controls autoplay></video> … <script> // preluăm via DOM obiectul referitor la conținutul video var video = document.getElementsByTagName ('video')[0]; </script> <p> <input type="button" value="Pauză" onclick="video.pause ();"> <input type="button" value="Rulează" onclick="video.play ();"> metodele pause() și play() </p> sunt specificate de interfața HTMLMediaElement
  • 30. exemple de evenimente ce pot fi tratate în ceea ce privește conținutul multimedia: loadstart progress suspend abort error stalled play pause loadeddata waiting playing seeking canplay seeked timeupdate ended ratechange durationchange volumechange
  • 31. elemente care permit “scufundarea” altor tipuri de conținuturi într-o pagină Web plus: canvas – grafică raster generată dinamic svg – conținut grafic vectorial specificat prin SVG math – formule matematice exprimate via MathML
  • 32. interfața HTMLCanvasElement permite generarea dinamică de conținut grafic dependent de rezoluția curentă
  • 33. interfața HTMLCanvasElement permite generarea dinamică de conținut grafic dependent de rezoluția curentă în prezent – specificație W3C (mai 2011): conținut grafic 2D transparent de tip raster www.w3.org/TR/2dcontext/
  • 34. interfața HTMLCanvasElement este asociată elementului canvas
  • 35. interfața HTMLCanvasElement este asociată elementului canvas navigatoarele Web actuale oferă suport relativ complet pentru Internet Explorer (versiuni < 9), se poate recurge la ExplorerCanvas: http://code.google.com/p/explorercanvas/
  • 36. prin JavaScript pot fi efectuate transformări geometrice de bază generarea de căi grafice (paths) crearea degradé-urilor & redarea umbrelor specificarea de conținuturi textuale manipularea conținutului grafic …și altele
  • 37. <html> exemplu <head> <title>Corola de minuni</title> <script type="text/javascript" src="discuri.js"></script> </head> <body onclick="javascript:deseneazaDiscuri ()"> <h1>Fă un click…</h1> <canvas id="canvas" height="500" width="375"> </canvas> </body> </html>
  • 38. function deseneazaDiscuri () { exemplu // preluăm contextul de redare 2D var context = document.getElementById ('canvas').getContext ('2d'); // stabilim parametrii umbrelor context.shadowOffsetX = 3; context.shadowOffsetY = 3; context.shadowBlur = 33; // stabilim parametrii corpului de literă context.font = "20pt Arial, Helvetica, sans-serif"; context.fillText ("Fă un click", 5, 30); // translăm... context.translate (75, 75); programul JavaScript (discuri.js) generând conținutul
  • 39. for (var i = 1; i < 5; i++) { // generăm 'inele' de discuri exemplu // salvăm contextul de redare context.save (); // stabilim via CSS3 culoarea de umplere a discului curent // și ajustăm aleatoriu transparența (alpha) context.fillStyle = 'rgba(33,' + (51 * i) + ',' + (255 - 51 * i) + ',' + Math.random() + ')'; for (var j = 0; j < i * 6; j++){ // desenăm discuri context.rotate (Math.PI * 2 / (i * 6)); context.beginPath (); context.arc (0, i * 12.5, 5, 0, Math.PI * 2, true); context.fill (); } // restaurăm contextul de redare context.restore (); } programul JavaScript } (discuri.js) generând conținutul
  • 40. un posibil rezultat al execuției codului (folosind un browser bazat pe WebKit)
  • 41. exemple demonstrative & resurse: www.canvasdemos.com
  • 42. interacțiunea cu utilizatorul formularele Web pot include câmpuri suplimentare
  • 43. interacțiunea cu utilizatorul noi tipuri: search tel url email datetime date number range color
  • 44. <label>Adrese suplimentare: exemplu <input type="email" multiple list="adrese" name="cc" /> </label> … <datalist id="adrese"> <option value="tux@pinguin.info" /> <option value="tuxy.pinguinescu@info.uaic.ro" /> <option value="tp@alt.undeva.org" /> … </datalist> <input type="date" max="2000-12-31" name="zi-nastere" /> <input type="range" min="1" max="7" step="2" name="premii" />
  • 45. interacțiunea cu utilizatorul noi elemente interactive: details summary command menu
  • 46. încărcarea & redarea documentelor suplimentar față de obiectul Document, se specifică Window oferind acces la mediul de redare
  • 47. încărcarea & redarea documentelor API-uri de bază: ApplicationCache control asupra cache-ului navigatorului Web
  • 48. încărcarea & redarea documentelor API-uri de bază: WindowTimers oferă suport pentru specificarea contoarelor de timp
  • 49. încărcarea & redarea documentelor API-uri de bază: Navigator acces la starea și proprietățile sistemului via sub-interfețele NavigatorID și NavigatorAbilities
  • 50. încărcarea & redarea documentelor API-uri de bază: DataTransfer stochează fragmente de date în diverse formate (util și pentru efectuarea operațiilor drag & drop)
  • 51. încărcarea & redarea documentelor API-uri de bază: UndoManager gestionează istoricul comenzilor efectuate (undo transaction history)
  • 52. Există și alte specificații sau inițiative de interes?
  • 53. WebSocket API definește un API abstract pentru transmiterea de date pe baza protocolului de transfer WebSocket: www.whatwg.org/specs/web-socket-protocol/ www.w3.org/TR/websockets/
  • 54. exemplu // actualizările de date vor fi trimise cu rata de o actualizare // la fiecare 50ms, dacă există suficientă lățime de bandă var socket = new WebSocket ('ws://joc.undeva.info:1974/updates'); socket.onopen = function () { setInterval (function() { if (socket.bufferedAmount == 0) socket.send (oferaDate ()); }, 50); };
  • 55. Web Messaging oferă API-uri pentru realizarea transferului de mesaje între diverse contexte de navigare www.w3.org/TR/postmsg/
  • 56. Web Messaging mesajele pot proveni de la server, via socket-uri Web sau de la alte documente via canale de comunicație
  • 57. Web Workers “muncitor” (worker) Web: script rulat în fundal – în accepțiunea daemon-ilor UNIX – independent de alte programe ce pot interacționa cu utilizatorul
  • 58. Web Workers mediul de execuție al unui worker e complet separat, codul fiind rulat în paralel, în mod asincron http://whatwg.org/ww
  • 59. Web Storage oferă mecanisme de stocare (persistentă) a datelor la nivel de client sub formă de perechi cheie—valoare www.w3.org/TR/webstorage/
  • 60. Web Storage maniera de stocare a itemilor se precizează via atributele sessionStorage și localStorage
  • 61. Web Storage maniera de stocare a itemilor se precizează via atributele sessionStorage și localStorage stocare nepersistentă (suport pentru sesiuni)
  • 62. Web Storage maniera de stocare a itemilor se precizează via atributele sessionStorage și localStorage alternativă la cookie-uri
  • 63. exemplu <textarea id="editor" placeholder="Începeți să tastați..."> </textarea> document.querySelector ('#editor').addEventListener ('keyup', function (e) { // la fiecare eliberare a tastei… // stocăm conținutul și data editării localStorage.setItem ('text', this.value); localStorage.setItem ('data', (new Date()).getTime()); }, false);
  • 64. Web SQL Database se referă la un set de API-uri pentru managementul asincron al bazelor de date la nivel de client via SQL www.w3.org/TR/webdatabase/
  • 65. Web SQL Database dialectul SQL suportat trebuie să fie cel oferit de SQLite
  • 66. Web SQL Database accesul la baze de date e abstractizat de interfețele WindowDatabase, WorkerUtilsDatabase, DatabaseCallback
  • 67. Web SQL Database în caz de succes, se va crea un obiect de tip: SQLTransaction (tranzacție asincronă) sau SQLTransactionSync (tranzacție realizată sincron) rezultatele întoarse de server în urma execuției comenzilor SQL se regăsesc într-un obiect SQLResultSet
  • 68. <script> new Worker ('actualizator.js'); </script> exemplu // deschiderea conexiunii cu baza de date var server = new WebSocket ('ws://whatwg.org/database'); var db = openDatabase ('demo', '1.0', 'Date demo', 10240); server.onmessage = function (eveniment) { // datele sunt în format "comanda cheie valoare" var date = eveniment.data.split (' '); switch (date[0]) { // inserare a unei valori pe baza cheii case '+': db.transaction (function (t) { t.executeSql ('INSERT INTO info (cheie, valoare) VALUES (?, ?)', date[1], date[2]); }); case '-': db.transaction (function (t) { // operația de ștergere t.executeSql ('DELETE FROM info WHERE cheie=? AND valoare=?', date[1], date[2]); }); } un worker ce efectuează operații asupra }; unei baze de date existente la nivel de client
  • 69. File API suită de API-uri pentru manipularea fișierelor File Blob FileList FileReader BlobBuilder FileWriter FileSaver FileSystem
  • 70. De unde aflu mai multe?
  • 71. WHATWG – Web Hypertext Application Technology Working Group www.whatwg.org
  • 76. mult succes cu HTML ! Dr. Sabin Buraga www.purl.org/net/busaco