08 martie 2012

HTML5


  reprezinta cea de-a cincea mare revizuire a standardului HTML, care este in curs de dezvoltare (draft). Reprezinta un limbaj unic care poate fi scris atat in sintaxa HTML cat si in XML, ideal atat pentru browsere cat si pentru parsere. De asemenea, s-a luat in calcul si posibilitatea rularii noilor aplicatii web pe platforme mobile, smartphone-uri si tablete.

  Organizatia care a infiintat noul standard in 2004 este WHATWG (Web Hypertext Application Technology Working Group). Dintre organizatiile care sustin standardul se regasesc producatorii de browsere Firefox, Opera, dar si gigantii Google, Apple, Adobe sau Facebook.  Cu toate ca este sustinut de multe organizatii, HTML5 nu se grabeste sa fie definitivat, termenul preconizat fiind in iulie 2014.

  HTML5 contine o serie de elemente de sintaxa in plus fata de versiunea anterioara, dintre care cele mai remarcabile par a fi <audio> si <video>. Acestea ar putea inlocui plugin-urile dedicate (Flash, Silverlight, etc) si astfel ar putea imbunatati performantele (mai putine resurse consumate, securitate mai buna). De asemenea, elementul <canvas> va permite ca motorul browser-ului sa randeze grafica in timp real, pentru integrarea jocurilor fara a mai fi nevoie de Flash.

  In total, HTML5 are in jur de 100 de specificatii noi si este compatibil cu documentele HTML4 si XHTML1 publicate pe internet, dar necompatibil cu functiile SGML  are HTML4. In schimb, suporta elemente de MathML si SVG.

  Dintre elementele noi (tag-uri) cele mai importante par a fi section, article, aside, header, footer, figure, video/audio, track, embed, mark, progress, meter, time, ruby, canvas, command, details, datalist, keygen, output si altele. De exemplu, noul element numit <article> specifica un continut independent de restul paginii care va putea fi distribuit independent de restul sitului, iar <ruby> specifica o adnotare ruby, folosite pentru tipografia tarilor din Asia de Est pentru a le arata pronuntarea.

  Pe langa elemente noi, s-au adaugat si atribute noi unor elemente deja existente. De exemplu, pentru <input> exista in plus atributele autocomplete, min, max, multiple, pattern, iar pentru <textarea> apar maxlength, wrap sau dirname.  <html> va putea lua ca atribut nou manifest, ceea ce inseamna specificarea locatiei unde se afla o lista a resurselor pe care browser-ul le va cache-ui pentru accese offline ulterioare – acest atribut trebuie specificat in fiecare pagina html a aplicatiei web care se doreste a fi pastrata in cache.

  Unele atribute de elemente pot avea acum si alte valori, cum este cazul lui <input> care primeste pentru atributul type valorile: search, tell, url, email, datetime, date, month, week, time, datetime-local, number, range sau color.

  Pe langa adaugiri de sintaxa, s-au efectuat si modificari (un exemplu ar fi ca <img> nu poate primi ca valori ale atributelor width si height procente) dar si eliminari de sintaxa. S-a considerat ca unele dintre elementele absente au un efect pur de imagine (prezentare) si astfel ele pot fi setate prin CSS: basefont, big, center, font, strike, etc. Alte elemente nu apar deoarece se crede ca ar ameninta uzabilitatea si accesibilitatea: frame, frameset, noframes, iar altele au fost folosite prea putin de-a lungul timpului: <acronym> (creeaza confuzii), <applet> (inlocuit cu object),  <dir> (invechit, se foloseste <ul>). Dintre atributele des folosite, surprinzator, unele au fost eliminate deoarece functionalitatea poate fi realizata direct din CSS: align, background (<body>), bgcolor, border, cellpadding, cellspacing, frame (<table>), scrolling (<iframe>) si altele.


  Pe langa specificarea elementelor de markup noi, HTML5 specifica si API-uri de scripting. API-uri noi care apar sunt: aplicatii web offline, drag and drop, editarea documentelor, managementul istoricului web, elemental canvas pentru desenare 2D, stocare web (web storage – un framework de stocare de perechi cheie-valoare cu un comportament similar cu cookies, dar cu o capacitate mai mare de stocare si API imbunatatit), etc. GeoLocation este o interfata prin care un site poate identifica locatia calculatorului, fara ajutorul altui plugin.

  Web workers este un alt concept nou introdus de HTML5 care este o functie de procesare in fundal ce se va ocupa simulan de scripturile sitului si de aplicatiile web in thread-uri separate. In mod normal, in browsere opera un singur thread care executa tot codul Javascript, dar prin web workers, viteza si timpul de raspuns vor fi imbunatatiti prin separarea partilor CPU-intensive de  codul pentru interfata utilizatorului.
  Noua versiune HTML5 pare sa aduca imbunatatiri pe partea de securitate, prin adaugarea unui sandbox la iframe si permiterea in mod limitat a executarii scripturilor sau a cookie-urilor.

  Personal, sunt foarte atrasa de ideea de HTML5 si cred, conform specificatiilor, ca noul standard va aduce imbunatatiri substantiale atat la nivel vizual, cat si din punct de vedere al performantei. Mi se pare excelenta ideea separarii pe thread-uri a interfetei cu utilizatorul si a  “activitatii din spate” deoarece in viata de zi cu zi, multe aplicatii web crapa sau produc intarzieri deoarece toate task-urile sunt procesate laolalta, in acelasi thread. De asemenea, unui utilizator ii va fi mult mai usor cu HTML5 decat sa fie nevoit sa instaleze plugin-uri pentru orice fel de continut multimedia (Flash, Silverlight, ActiveX, etc). Cu toate acestea, se pare ca Flash nu va fi uitat prea curand deoarece HTML5 nu poate reda continut HD. Nu vad o neaparata nevoie de un API pentru accesarea aplicatiilor web offline, in conditiile in care aproape toti utilizatorii au acces la internet non-stop, dar poate ca pentru rapiditate este mai convenabil ca pagina sa fie incarcata de pe statia locala.

Referinte:

Niciun comentariu: