SlideShare uma empresa Scribd logo
1 de 100
Baixar para ler offline
Dr.SabinBuragawww.purl.org/net/busaco
Dezvoltarea aplicațiilor Web
la nivel de client
☑
programare Web
suita de tehnologii HTML5
Dr.SabinBuragawww.purl.org/net/busaco
“If you can dream it, you can do it.”
Walt Disney
Dr.SabinBuragawww.purl.org/net/busaco
Care este prezentul și viitorul
programării Web la nivel de client?
Dr.SabinBuragawww.purl.org/net/busaco
HTML5
un vocabular (set de elemente + atribute)
folosit pentru marcarea paginilor Web
+
o suită de API-uri facilitând procesarea documentelor
Dr.SabinBuragawww.purl.org/net/busaco
HTML5
permite dezvoltarea standardizată de aplicații Web
pe baza unor API-uri specificate formal
Dr.SabinBuragawww.purl.org/net/busaco
HTML5
permite dezvoltarea standardizată de aplicații Web
pe baza unor API-uri specificate formal
API-urile sunt definite de interfețe
descrise via limbajul declarativ WebIDL
W3C Candidate Recommendation, 2012
http://www.w3.org/TR/WebIDL/
Dr.SabinBuragawww.purl.org/net/busaco
tehnologii înrudite cu HTML5 vizând prezentarea datelor:
Cascading Style Sheets – CSS (specificații W3C)
http://www.w3.org/Style/CSS/
https://developer.mozilla.org/docs/Web/CSS
Dr.SabinBuragawww.purl.org/net/busaco
Animations
Background-image options
Border images
Border radius
Box shadows
Box sizing
Downloadable fonts (@font-face)
Fixed positioning (position:fixed)
Font-feature settings
Gradients
Grid layout
Hyphenation
Media Queries
Multiple-column layout
Multiple backgrounds
Opacity
Pointer events
Selectors
Text overflow
Text shadows
Transforms (2D)
Transforms (3D)
Transitions
CSSOM (CSS Object Model)
CSSOM View Module
module CSS – standardizate ori în curs de standardizare –
specificând diverse funcționalități
de experimentat și validatorul de foi de stiluri CSS:
http://jigsaw.w3.org/css-validator/
Dr.SabinBuragawww.purl.org/net/busaco
Tehnologii înrudite cu HTML5 vizând acces (abstract)
via un model conceptual: Document Object Model – DOM
pentru HTML, SVG și XML
în vigoare: DOM Level 3
în curs de standardizare: DOM Level 4
http://www.w3.org/standards/techs/dom#w3c_all
https://dom.spec.whatwg.org/
Dr.SabinBuragawww.purl.org/net/busaco
Web API
suita de API-uri JavaScript (ECMAScript) disponibile
– la nivel de client – pentru dezvoltarea de aplicații
arii de interes: grafică & tipografie, multimedia,
interacțiune cu utilizatorul, stocare & fișiere, transfer
în timp-real, componente Web, performanță, securitate
http://www.w3.org/standards/techs/js
https://platform.html5.org/
Dr.SabinBuragawww.purl.org/net/busaco
HTML5
inițial, o propunere independentă de Consorțiul Web
WHATWG (Web Hypertext Application Technology
Working Group) compus din Apple, Mozilla, Opera
www.whatwg.org
Dr.SabinBuragawww.purl.org/net/busaco
www.whatwg.org/specs/web-apps/current-work/
Dr.SabinBuragawww.purl.org/net/busaco
HTML5
actualmente, standard al Consorțiului Web
W3C Recommendation (28 octombrie 2014)
http://www.w3.org/TR/html5/
Dr.SabinBuragawww.purl.org/net/busaco
diverse alte specificații
HTML5 în lucru:
http://dev.w3.org/html5/
Dr.SabinBuragawww.purl.org/net/busaco
Ce aduce nou HTML5?
Dr.SabinBuragawww.purl.org/net/busaco
Relaxarea corectitudinii la nivel de sintaxă
HTML
și/sau
XHTML
Dr.SabinBuragawww.purl.org/net/busaco
Relaxarea corectitudinii la nivel de sintaxă
text/html
versus
application/xhtml+xml
Dr.SabinBuragawww.purl.org/net/busaco
specificarea tipului de document
se poate realiza în mod simplificat:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ro">
<head>
<title>…</title>
<meta charset="utf-8" />
…
</head>
<body>
…
</body>
</html>
spațiul de nume
rămâne neschimbat
Dr.SabinBuragawww.purl.org/net/busaco
Modelul de reprezentare internă este bazat pe DOM
DOM HTML5
Dr.SabinBuragawww.purl.org/net/busaco
Modelul de reprezentare internă este bazat pe DOM
DOM HTML5
eventual, arborele DOM – regăsit la nivel de browser
via un obiect de tip Document – poate fi redat (accesat)
de către o extensie/plug-in
Dr.SabinBuragawww.purl.org/net/busaco
Modelul de reprezentare internă este bazat pe DOM
DOM HTML5
orice document Web este identificat
de o adresă unică (URL) ce poate fi manipulată via DOM
Dr.SabinBuragawww.purl.org/net/busaco
HTML5
detalii privind elementele (marcajele)
și atributele aferente:
http://www.w3.org/standards/techs/html
a se consulta și HTML5 Doctor
http://html5doctor.com/
Dr.SabinBuragawww.purl.org/net/busaco
Lista elementelor HTML5
referitoare la antetul documentului (head):
html
head title base link
meta
style
script noscript
Dr.SabinBuragawww.purl.org/net/busaco
Lista elementelor HTML5
vizând structura (sections):
body
article nav aside section
header footer
h1—h6
main
address
Dr.SabinBuragawww.purl.org/net/busaco
Lista elementelor HTML5
grupare (grouping):
p
hr
pre blockquote
ol ul li
dl dt dd
figure figcaption
div
Dr.SabinBuragawww.purl.org/net/busaco
Lista elementelor HTML5
tabele (tables):
table
caption
thead tbody tfoot
tr th td
col colgroup
Dr.SabinBuragawww.purl.org/net/busaco
Lista elementelor HTML5
formulare (forms):
form
fieldset legend label
input button
select datalist optgroup option
textarea
keygen output
progress meter
Dr.SabinBuragawww.purl.org/net/busaco
Lista elementelor HTML5
editări de conținut (edits):
ins
del
Dr.SabinBuragawww.purl.org/net/busaco
Lista elementelor HTML5
alte conținuturi inserate (embedded):
img
iframe
embed object param
video audio track source
canvas
map
area
Dr.SabinBuragawww.purl.org/net/busaco
Lista elementelor HTML5
privind datele textuale (text-level):
a
em strong
abbr
q cite dfn
sub sup
Dr.SabinBuragawww.purl.org/net/busaco
Lista elementelor HTML5
privind datele textuale (text-level 2):
time
code kbd samp var mark
bdi bdo
ruby rt rp
span
br
wbr
Dr.SabinBuragawww.purl.org/net/busaco
a
abbr
address
area
article
aside
audio
b
base
bdi
bdo
blockquote
body
br
button
canvas
caption
cite
code
col
colgroup
data
datalist
dd
del
dfn
div
dl
dt
em
embed
fieldset
figcaption
figure
footer
form
h1—h6
head
header
hr
html
i
iframe
img
input
ins
kbd
keygen
label
legend
li
link
main
map
mark
meta
meter
nav
noscript
object
ol
optgroup
option
output
p
param
pre
progress
q
rb
rp
rt
rtc
ruby
s
samp
script
section
select
small
source
span
strong
style
sub
sup
table
tbody
td
template
textarea
tfoot
th
thead
time
title
tr
track
u
ul
var
video
wbr
elementele HTML5
Dr.SabinBuragawww.purl.org/net/busaco
Câteva amănunte
despre noile elemente HTML5?
Dr.SabinBuragawww.purl.org/net/busaco
Noi elemente de structurare (secțiuni)
în stilul POSH – Plain Old Semantic HTML
article, nav, aside, section, header, footer etc.
de studiat Ș. Negru, Web LSD (Logic, Semantics and Design), 2013
http://slid.es/blankdots/weblsd
Dr.SabinBuragawww.purl.org/net/busaco
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ro" xml:lang="ro">
<head>
<title>Filmul disciplinei | Dezvoltarea aplica&#355;iilor Web la nivel de client</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Sabin Buraga – http://www.purl.org/net/busaco" />
<link rel="stylesheet" type="text/css" href="web.css" />
</head>
<body>
<header>
<h1>Dezvoltarea aplica&#355;iilor Web la nivel de client</h1>
<p class="slogan">prezent&#259;rile aferente cursului</p>
</header>
<article>
<p>Filmul desf&#259;&#351;ur&#259;rii materiei este prezentat mai jos.</p>
<nav>
<ul>
<li><a href="#week12" title="…">S&#259;pt&#259;m&acirc;na 12</a></li>
…
<li><a href="#week1" title="…">S&#259;pt&#259;m&acirc;na 1</a></li>
</ul>
</nav>
detalii despre atributul rel la
www.w3.org/TR/html5/links.html
Dr.SabinBuragawww.purl.org/net/busaco
<section id="week1">
<h2>&#9635; S&#259;pt&#259;m&acirc;na 1</h2>
<ul>
<li><aside class="menu">reamintire:
<a href="http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html"
title="Spre situl disciplinei">Tehnologii Web</a></aside>
<p>…</p>
</li>
</ul>
</section>
</article>
<footer>
<h6>Ultima actualizare: 15 decembrie 2014 /
<a rel="license"
href="http://creativecommons.org/licenses/by-nc-sa/4.0/" title="…">CC</a>
<span itemscope="itemscope" itemtype="http://schema.org/Person">
<a href="http://www.purl.org/net/busaco" title="Spre situl Web al titularului…"
itemprop="url" accesskey="S">
<span itemprop="name">Sabin Buraga</span></a>
</span>
</h6>
</footer>
</body>
</html>
microdate HTML5
folosind vocabularele schema.org
(vezi unul din cursurile anterioare)
Dr.SabinBuragawww.purl.org/net/busaco
Embedded content
„scufundarea” altor tipuri de conținuturi
într-un document HTML
conținut grafic – raster și/sau vectorial
conținut sonor
conținut video
Dr.SabinBuragawww.purl.org/net/busaco
Embedded content
svg
conținut grafic vectorial
specificat prin SVG (Scalable Vector Graphics)
un limbaj descriptiv bazat pe XML
http://www.w3.org/Graphics/SVG/
https://developer.mozilla.org/docs/Web/SVG
Dr.SabinBuragawww.purl.org/net/busaco
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" width="8cm" height="3cm">
<title>Grafică vectorială cu SVG</title>
<defs>
<!-- definim un dégradé (gradient) liniar -->
<linearGradient id="unGradient">
<stop offset="33%" stop-color="#ADA" />
<stop offset="74%" stop-color="#369" />
</linearGradient>
<rect id="patrat" width="15px" height="15px" rx="2" ry="2" fill="green" />
<!-- o cale de redare -->
<path id="cale" d="M15 50 C10 0 90 0 90 40" />
<!-- un filtru cromatic -->
<filter id="filtruCromatic">
<feColorMatrix in="SourceGraphic" type="matrix"
values="0 0 0 0 0
1 0 1 1 0
0 1 1 0 0
0 0 0 1 0" />
</filter>
</defs>
studiu de caz: grafică vectorială cu SVG
C. Bulancea & S. Buraga (2004, 2014)
comenzi grafice
(e.g., M=mută, C=cerc)
aplicarea unui filtru
www.w3.org/TR/SVG/filters.html
Dr.SabinBuragawww.purl.org/net/busaco
<!-- o formă rectangulară umplută cu dégradé-ul definit anterior -->
<rect x="1cm" y="1cm" width="6cm" height="1cm" round="1em"
fill="url (#unGradient)" />
<!-- folosim 4 instanțe ale pătratului definit,
plasate la diverse coordonate și având diverse proprietăți grafice -->
<use x="40" y="40" xlink:href="#patrat" />
<use x="100" y="80" xlink:href="#patrat" filter="url (#filtruCromatic)" />
<use x="160" y="80" xlink:href="#patrat" fill-opacity="0.33" />
<use x="220" y="80" xlink:href="#patrat" />
<!-- un text redat conform căii specificate -->
<text fill="darkgreen">
<!-- de studiat și http://www.w3.org/TR/SVG/fonts.html -->
<textPath xlink:href="#cale">&#10084; 2015</textPath>
</text>
</svg>
studiu de caz: grafică vectorială cu SVG
C. Bulancea & S. Buraga (2004, 2014)
Dr.SabinBuragawww.purl.org/net/busaco
studiu de caz: grafică vectorială cu SVG
redarea conținutului grafic vectorial SVG
Safari pe platforma
mobilă iOS 8.1 (iPad Air)
Firefox
la nivel de desktop
Windows 8.1
Dr.SabinBuragawww.purl.org/net/busaco
un experiment de editare on-line cu instrumentul JS Bin
includerea construcțiilor SVG – aici, <rect> și <circle> –
direct în documentul HTML5
Dr.SabinBuragawww.purl.org/net/busaco
Embedded content
svg
specificația curentă: SVG 1.1 2nd Edition (2011)
http://www.w3.org/TR/SVG/
în lucru: SVG 2.0 – https://svgwg.org/svg2-draft/
în contextul dispozitivelor mobile: SVG Tiny 1.2 (2008)
http://www.w3.org/TR/SVGTiny12/
Dr.SabinBuragawww.purl.org/net/busaco
Embedded content
svg
suport în cadrul navigatoarelor moderne
Chrome, Firefox, IE9+, Opera, Safari (inclusiv pentru iOS)
Dr.SabinBuragawww.purl.org/net/busaco
exemple demonstrative:
http://svg-wow.org/
Dr.SabinBuragawww.purl.org/net/busaco
Embedded content
svg
biblioteci JavaScript importante:
Raphaël.js – raphaeljs.com
Snap.svg – snapsvg.io
svg.js – svgjs.com
a se considera și Bonsai, Fabric.js, SVG Circus etc.
http://jster.net/tag/svg
Dr.SabinBuragawww.purl.org/net/busaco
examinarea codului SVG generat de biblioteca Snap.svg
folosind instrumentele de depanare furnizate de browser
Dr.SabinBuragawww.purl.org/net/busaco
Embedded content
math
expresii matematice exprimate via limbajul MathML
un limbaj declarativ bazat pe XML
http://www.w3.org/Math/
Dr.SabinBuragawww.purl.org/net/busaco
Embedded content
math
specificația curentă: MathML 3.0 (2010)
o listă a instrumentelor software la
http://www.w3.org/Math/Software/
suport nativ oferit de Firefox (inclusiv pentru Android),
Safari (inclusiv pentru iOS) și Blackberry
Dr.SabinBuragawww.purl.org/net/busaco
proiectul MathJax
www.mathjax.org
soluție alternativă
(polyfill)
Dr.SabinBuragawww.purl.org/net/busaco
Embedded content
alături de elementele img, iframe, embed și object,
sunt permise audio, video, source
ce pot fi utilizate la includerea de conținut multimedia
Dr.SabinBuragawww.purl.org/net/busaco
Embedded content
elementele audio și video
implementează interfața HTMLMediaElement
Dr.SabinBuragawww.purl.org/net/busaco
interface HTMLMediaElement : HTMLElement {
readonly attribute MediaError error;
attribute DOMString src;
readonly attribute DOMString currentSrc;
attribute DOMString preload;
readonly attribute TimeRanges buffered;
attribute double currentTime;
readonly attribute double duration;
readonly attribute boolean paused;
attribute boolean autoplay;
attribute boolean loop;
attribute boolean controls;
attribute double volume;
attribute boolean muted;
void load ();
void play ();
void pause ();
};
principalele atribute și
metode ale interfeței
HTMLMediaElement
Dr.SabinBuragawww.purl.org/net/busaco
<video id="film" src="/media/tux.ogg" controls autoplay>
Nu există suport pentru elementul video… :-(
</video>
…
<script type="text/javascript">
// preluăm conținutul video
var video = document.getElementById ('film');
</script>
<p>
<input type="button" value="Oprește"
onclick="video.pause ();" />
<input type="button" value="Rulează"
onclick="video.play ();" />
</p>
Dr.SabinBuragawww.purl.org/net/busaco
Embedded content
principalele evenimente ce pot fi tratate
în ceea ce privește conținutul audio/video:
loadstart progress suspend abort error
stalled play pause loadeddata
waiting playing seeking
canplay seeked timeupdate ended
ratechange durationchange volumechange
Dr.SabinBuragawww.purl.org/net/busaco
<source src='fii-absolvent.mp4'
type='video/mp4; codecs="mp4v.20.240, mp4a.40.2"' />
<source src='fii-absolvent.mkv'
type='video/x-matroska; codecs="theora, vorbis"' />
<source src='discursul-lui-tux.oga'
type='audio/ogg; codecs=flac' />
precizarea codec-urilor
necesare redării
Dr.SabinBuragawww.purl.org/net/busaco
<source src='fii-absolvent.mp4'
type='video/mp4; codecs="mp4v.20.240, mp4a.40.2"' />
<source src='fii-absolvent.mkv'
type='video/x-matroska; codecs="theora, vorbis"' />
<source src='discursul-lui-tux.oga'
type='audio/ogg; codecs=flac' />
precizarea codec-urilor
necesare redării
codec-uri uzuale:
H.264 (MP4 – comercial, susținut de Apple și Microsoft;
actualmente, orice browser Web modern îl acceptă)
www.h264info.com
Dr.SabinBuragawww.purl.org/net/busaco
<source src='fii-absolvent.mp4'
type='video/mp4; codecs="mp4v.20.240, mp4a.40.2"' />
<source src='fii-absolvent.mkv'
type='video/x-matroska; codecs="theora, vorbis"' />
<source src='discursul-lui-tux.oga'
type='audio/ogg; codecs=flac' />
precizarea codec-urilor
necesare redării
codec-uri uzuale:
OGG (Theora – open-source; implementat de Chrome,
Firefox și Opera, inexistent pentru IE și Safari ori Android)
www.xiph.org/ogg/
Dr.SabinBuragawww.purl.org/net/busaco
<source src='fii-absolvent.mp4'
type='video/mp4; codecs="mp4v.20.240, mp4a.40.2"' />
<source src='fii-absolvent.mkv'
type='video/x-matroska; codecs="theora, vorbis"' />
<source src='discursul-lui-tux.oga'
type='audio/ogg; codecs=flac' />
precizarea codec-urilor
necesare redării
codec-uri uzuale:
WebM (o inițiativă Google – open source; suport oferit
de Chrome, Firefox și Opera, dar nu și de Safari)
www.webmproject.org
Dr.SabinBuragawww.purl.org/net/busaco
Alte codec-uri:
WebP (Google – format grafic cu/fără pierderi,
oferind suport și pentru animații sau transparență;
implementat doar de Chrome și Opera)
https://developers.google.com/speed/webp/
Dr.SabinBuragawww.purl.org/net/busaco
Alte codec-uri:
Opus (specificație IETF liberă
asigurând calitatea ridicată a conținutului audio;
implementări actuale: Chrome și Firefox)
http://tools.ietf.org/html/rfc6716
Dr.SabinBuragawww.purl.org/net/busaco
Embedded content
elementul track permite specificarea de piste (track-uri)
ce pot include subtitrări, descrieri, capitole, meta-date
<!-- prezentarea S. Staab, Programming the Semantic Web (ESWC 2014) -->
<video src="http://videolectures.net/eswc2014_staab_semantic_web/">
<track kind="subtitles" src="..." srclang="en" label="English" />
<track kind="captions" src="..." srclang="en"
label="English for the Hard of Hearing" />
<track kind="subtitles" src="..." srclang="ro" label="Românește" />
</video>
Dr.SabinBuragawww.purl.org/net/busaco
statistici privind redarea conținutului via <video> (inclusiv
la nivelul dispozitivelor mobile) pe baza API-urilor
http://www.jwplayer.com/html5/
Dr.SabinBuragawww.purl.org/net/busaco
streaming adaptiv (eventual criptat)
disponibil doar în stadiu experimental
Dr.SabinBuragawww.purl.org/net/busaco
În ceea ce privește redarea conținutului video,
de interes poate fi și Fullscreen API
specificație în lucru (octombrie 2014),
dar implementată de majoritatea navigatoarelor
https://fullscreen.spec.whatwg.org/
Dr.SabinBuragawww.purl.org/net/busaco
Embedded content
canvas
suport pentru grafica raster (bitmap)
generată dinamic via JavaScript
Dr.SabinBuragawww.purl.org/net/busaco
Interfața HTMLCanvasElement
scop:
generarea dinamică de conținut grafic
dependent de rezoluția curentă
Dr.SabinBuragawww.purl.org/net/busaco
Interfața HTMLCanvasElement
stipulată de recomandarea W3C privind HTML5
Dr.SabinBuragawww.purl.org/net/busaco
Interfața HTMLCanvasElement
stipulată de recomandarea W3C privind HTML5
context de redare:
conținut grafic 2D transparent de tip raster
(W3C Candidate Recommendation, august 2014)
www.w3.org/TR/2dcontext/
Dr.SabinBuragawww.purl.org/net/busaco
typedef (CanvasRenderingContext2D or
WebGLRenderingContext) RenderingContext;
interface HTMLCanvasElement : HTMLElement {
// specifică zona rectangulară de redare a conținutului grafic
attribute unsigned long width;
attribute unsigned long height;
// metodă care oferă contextul redării conținutului
RenderingContext? getContext (DOMString contextId, any... args);
// metodă ce întoarce un URL folosind schema data:
// pentru accesul la conținutul generat
DOMString toDataURL
(optional DOMString type, any... args);
// metodă oferind manieră de serializare (e.g., salvare) a imaginii
void toBlob (FileCallback? _callback,
optional DOMString type, any... arguments);
};
Dr.SabinBuragawww.purl.org/net/busaco
Interfața HTMLCanvasElement
este asociată elementului HTML5 canvas
contextul 2D de redare a conținutul generat dinamic
de script-urile operând asupra obiectului canvas este
specificat formal de interfața CanvasRenderingContext2D
https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D
Dr.SabinBuragawww.purl.org/net/busaco
Elementul canvas – interfața CanvasRenderingContext2D
transformări geometrice de bază:
scale()
rotate()
translate()
transform()
setTransform()
Dr.SabinBuragawww.purl.org/net/busaco
Elementul canvas – interfața CanvasRenderingContext2D
generarea de căi grafice (paths):
lineTo() moveTo() rect() arc() fill() stroke() clip()
arcTo() quadraticCurveTo() bezierCurveTo()
beginPath() closePath()
isPointInPath()
Dr.SabinBuragawww.purl.org/net/busaco
Elementul canvas – interfața CanvasRenderingContext2D
manipularea zonelor rectangulare:
strokeRect()
fillRect()
clearRect()
Dr.SabinBuragawww.purl.org/net/busaco
Elementul canvas – interfața CanvasRenderingContext2D
crearea dégradé-urilor:
createLinearGradient()
createRadialGradient()
createPattern()
plus addColorStop() – oferită de interfața CanvasGradient
vezi și CSS3
Dr.SabinBuragawww.purl.org/net/busaco
Elementul canvas – interfața CanvasRenderingContext2D
specificarea de conținuturi textuale:
font
textAlign
fillText()
strokeText()
measureText()
Dr.SabinBuragawww.purl.org/net/busaco
Elementul canvas – interfața CanvasRenderingContext2D
suport pentru redarea umbrelor:
shadowOffsetX
shadowOffsetY
shadowColor
shadowBlur
Dr.SabinBuragawww.purl.org/net/busaco
Elementul canvas – interfața CanvasRenderingContext2D
manipularea conținutului grafic:
createImageData()
getImageData()
putImageData()
vezi interfața ImageData
Dr.SabinBuragawww.purl.org/net/busaco
Elementul canvas – interfața CanvasRenderingContext2D
operații cu imagini:
drawImage()
save()
restore()
globalAlpha
globalCompositeOperation
Dr.SabinBuragawww.purl.org/net/busaco
<!DOCTYPE html>
<html>
<head>
<title>Corola de minuni</title>
</head>
<script type="text/javascript" src="discuri.js"></script>
<body onclick="javascript:deseneazaDiscuri()">
<h1>Un click…</h1>
<canvas id="canvas"
height="500"
width="375">
</canvas>
</body>
</html>
generarea
unei corole de minuni
Dr.SabinBuragawww.purl.org/net/busaco
function deseneazaDiscuri() {
// preluăm contextul de redare 2D
var context =
document.getElementById ('canvas').getContext ('2d');
// stabilim parametrii corpului de literă
context.font = "20pt sans-serif";
context.fillText ("o minune", 5, 30);
// translăm...
context.translate (75, 75);
programul JavaScript
(discuri.js) generând conținutul
Dr.SabinBuragawww.purl.org/net/busaco
for (var i = 1; i < 5; i++) { // vom genera 'inele' de discuri
// 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 ();
}
// restăuram contextul de redare
context.restore ();
}
}
programul JavaScript
(discuri.js) generând conținutul
Dr.SabinBuragawww.purl.org/net/busaco
un posibil rezultat al execuției codului
Sabin Buraga < busaco@infoiasi.ro >
o suită de tutoriale:
www.html5canvastutorials.com
vezi și https://developer.mozilla.org/docs/Web/API/Canvas_API
Dr.SabinBuragawww.purl.org/net/busaco
biblioteci JavaScript:
Fabric Flotr2 Kinetic Paper
libCanvas Processing.js Rekapi
în contextul vizualizării
datelor, de experimentat
JavaScript InfoVis Toolkit
http://thejit.org/
Dr.SabinBuragawww.purl.org/net/busaco
Interfața HTMLCanvasElement
alternativă de redare:
conținut grafic 3D pe baza WebGL
implementare JavaScript a standardului
OpenGL ES 2.0 (Embedded Accelerated 3D Graphics)
www.khronos.org/opengles/2_X/
suport: Apple, AMD, Fujitsu, Google, Intel, NVIDIA, Samsung, Sony,…
Dr.SabinBuragawww.purl.org/net/busaco
Interfața HTMLCanvasElement
alternativă de redare:
conținut grafic 3D pe baza WebGL
specificații în lucru furnizate de Khronos Group
WebGL 1.0 – ciornă, 10 decembrie 2014
WebGL 2.0 – ciornă, 17 octombrie 2014
http://www.khronos.org/webgl/
Dr.SabinBuragawww.purl.org/net/busaco
mediu Web de dezvoltare: http://webglplayground.net/
resurse: https://developer.mozilla.org/docs/Web/WebGL
WebGL în conjuncție cu jQuery
Dr.SabinBuragawww.purl.org/net/busaco
WebGL este implementat
(inclusiv pe platforme mobile)
în proporție de aproape 75%
Dr.SabinBuragawww.purl.org/net/busaco
<script id="shader-vs" type="x-shader/x-vertex">
// codul-sursă implementând un vertex shader (OpenGL)
</script>
<script id="shader-fs" type="x-shader/x-fragment">
// codul-sursă al unui fragment shader (OpenGL)
</script>
<script type="text/javascript">
// cod JavaScript recurgând la WebGL
</script>
…
<body onload="webGLStart ();">
<canvas id="spatiu3D" width="1024" height="768"></canvas>
</body>
tutorial WebGL: http://learningwebgl.com/blog/?page_id=1217
Dr.SabinBuragawww.purl.org/net/busaco
Shader Editor inclus în Firefox folosit la inspectarea
shader-elor demonstrative ale instrumentului online Shdr
Dr.SabinBuragawww.purl.org/net/busaco
biblioteci JavaScript: Babilon, c3DL,
CopperLicht, CubicVR, OSG, PhiloGL,
SceneJS, TDL (ThreeD Library), Three.js,…
alte detalii la www.khronos.org/webgl/wiki/User_Contributions
Dr.SabinBuragawww.purl.org/net/busaco
Formulare HTML5
formularele Web pot include noi tipuri de câmpuri,
valorile putând fi eventual auto-completate
și/sau validate de browser
http://www.w3.org/TR/html5/forms.html
http://diveintohtml5.info/forms.html
Dr.SabinBuragawww.purl.org/net/busaco
Data type Control type
search Text with no line breaks Search field
tel Text with no line breaks A text field
url An absolute URL A text field
email
An e-mail address or
list of e-mail addresses
A text field
date
A date (year, month, day)
with no time zone
A date control
time
A time (hour, minute, seconds,
fractional seconds)
with no time zone
A time control
number A numerical value
A text field or
spinner control
range
A numerical value, with the extra
semantic that the exact value is not
important
A slider control or
similar
color
An sRGB color with 8-bit
red, green, & blue components
A color well
Dr.SabinBuragawww.purl.org/net/busaco
<label>Adrese suplimentare:
<input type="email" multiple
list="adrese" name="cc" />
</label>
<datalist id="adrese">
<option value="tux@pinguin.info">tux@pinguin.info</option>
<option value="tuxy.pingu@pol.org">tuxy.pingu@pol.org</option>
<option value="tp@alt.undeva.org">tp@alt.undeva.org</option>
</datalist>
<input type="date" max="2000-12-31" name="zi-nastere" />
<input type="range" min="1" max="7" step="2" name="premii" />
<input type="color" name="culoare" />
<input type="search" pattern="[A-Za-z]+" placeholder="Caută cadouri..." />
nu există încă suport complet
pentru toate tipurile de controale de interacțiune
atributul multiple poate fi folosit
și la upload-ul mai multor fișiere
Dr.SabinBuragawww.purl.org/net/busaco
formulare HTML5 – testarea facilităților:
https://miketaylr.com/code/input-type-attr.html
Dr.SabinBuragawww.purl.org/net/busaco
Atribute definite de programator
(custom HTML5 attributes)
într-un document HTML5 pot fi incluse atribute proprii
prefixate cu data-
pot stoca valori private
disponibile la nivel de pagină/aplicație Web
Dr.SabinBuragawww.purl.org/net/busaco
<div id="utilizator" data-id="1234" data-user="tux" data-date-of-birth>
Tuxy Pinguinescu</div>
var elem = document.querySelector ('#utilizator'); // obținem datele
// elem.id == 'utilizator'
// elem.dataset.id === '1234'
// elem.dataset.dateOfBirth === '' (data de naștere n-a fost precizată)
elem.dataset.dateOfBirth = '1991-12-17'; // stabilim când s-a născut
el.dataset.someDataAttr = 'mydata';
// 'someDataAttr' in el.dataset === true
folosirea consolei navigatorului Web pentru
accesarea și modificarea atributelor data-
via obiectul dataset
Dr.SabinBuragawww.purl.org/net/busaco
implementările HTML5:
html5test.com
Dr.SabinBuragawww.purl.org/net/busaco


❄
❄
❄
❄
❄
❄

episodul viitor: vacanța de iarnă ☃
❄

Mais conteúdo relacionado

Mais procurados

Căutarea resurselor Web
Căutarea resurselor WebCăutarea resurselor Web
Căutarea resurselor WebSabin 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
 
Cu codul în "nori"
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"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
 
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 (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
 
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
 
Programare Web - Cookie-uri si sesiuni
Programare Web - Cookie-uri si sesiuniProgramare Web - Cookie-uri si sesiuni
Programare Web - Cookie-uri si sesiuniSabin 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
 
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
 
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 (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
 
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
 
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 (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
 
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
 
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
 

Mais procurados (20)

Căutarea resurselor Web
Căutarea resurselor WebCăutarea resurselor Web
Căutarea resurselor Web
 
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
 
Cu codul în "nori"
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"
 
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
 
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 (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
 
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
 
Programare Web - Cookie-uri si sesiuni
Programare Web - Cookie-uri si sesiuniProgramare Web - Cookie-uri si sesiuni
Programare Web - Cookie-uri si sesiuni
 
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...
 
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
 
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 (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
 
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...
 
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 (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
 
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...
 
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....
 

Semelhante a CLIW 2014—2015 (10/12): Programare Web. Suita de tehnologii HTML5

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
 
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
 
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
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...Sabin Buraga
 
CLIW 2014—2015 (2/12): Arhitectura navigatorului Web
CLIW 2014—2015 (2/12): Arhitectura navigatorului WebCLIW 2014—2015 (2/12): Arhitectura navigatorului Web
CLIW 2014—2015 (2/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
 
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScriptCLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScriptSabin 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
 
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Sabin Buraga
 
CLIW 2017-2018 (10/12) Programare Web. API-uri JavaScript în contextul HTML5 (I)
CLIW 2017-2018 (10/12) Programare Web. API-uri JavaScript în contextul HTML5 (I)CLIW 2017-2018 (10/12) Programare Web. API-uri JavaScript în contextul HTML5 (I)
CLIW 2017-2018 (10/12) Programare Web. API-uri JavaScript în contextul HTML5 (I)Sabin Buraga
 
WADe 2014—2015 (supliment): Modelarea datelor în HTML: microformate & scheme ...
WADe 2014—2015 (supliment): Modelarea datelor în HTML: microformate & scheme ...WADe 2014—2015 (supliment): Modelarea datelor în HTML: microformate & scheme ...
WADe 2014—2015 (supliment): Modelarea datelor în HTML: microformate & scheme ...Sabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...Sabin Buraga
 
Dezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul REST
Dezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul RESTDezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul REST
Dezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul RESTSabin 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
 
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...Sabin Buraga
 
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre servicii
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre serviciiWADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre servicii
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre serviciiSabin Buraga
 
CLIW 2017-2018 (11/12) Programare Web. API-uri JavaScript în contextul HTML5 ...
CLIW 2017-2018 (11/12) Programare Web. API-uri JavaScript în contextul HTML5 ...CLIW 2017-2018 (11/12) Programare Web. API-uri JavaScript în contextul HTML5 ...
CLIW 2017-2018 (11/12) Programare Web. API-uri JavaScript în contextul HTML5 ...Sabin Buraga
 
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului WebCLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului WebSabin Buraga
 
WADe 2017-2018 Tutorial (2/3): Data Modeling in HTML: Schema.org HTML5 Microdata
WADe 2017-2018 Tutorial (2/3): Data Modeling in HTML: Schema.org HTML5 MicrodataWADe 2017-2018 Tutorial (2/3): Data Modeling in HTML: Schema.org HTML5 Microdata
WADe 2017-2018 Tutorial (2/3): Data Modeling in HTML: Schema.org HTML5 MicrodataSabin Buraga
 
CLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului WebCLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului WebSabin Buraga
 

Semelhante a CLIW 2014—2015 (10/12): Programare Web. Suita de tehnologii HTML5 (20)

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
 
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
 
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...
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...
 
CLIW 2014—2015 (2/12): Arhitectura navigatorului Web
CLIW 2014—2015 (2/12): Arhitectura navigatorului WebCLIW 2014—2015 (2/12): Arhitectura navigatorului Web
CLIW 2014—2015 (2/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
 
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScriptCLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
 
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
 
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
 
CLIW 2017-2018 (10/12) Programare Web. API-uri JavaScript în contextul HTML5 (I)
CLIW 2017-2018 (10/12) Programare Web. API-uri JavaScript în contextul HTML5 (I)CLIW 2017-2018 (10/12) Programare Web. API-uri JavaScript în contextul HTML5 (I)
CLIW 2017-2018 (10/12) Programare Web. API-uri JavaScript în contextul HTML5 (I)
 
WADe 2014—2015 (supliment): Modelarea datelor în HTML: microformate & scheme ...
WADe 2014—2015 (supliment): Modelarea datelor în HTML: microformate & scheme ...WADe 2014—2015 (supliment): Modelarea datelor în HTML: microformate & scheme ...
WADe 2014—2015 (supliment): Modelarea datelor în HTML: microformate & scheme ...
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
 
Dezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul REST
Dezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul RESTDezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul REST
Dezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul REST
 
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. ...
 
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
 
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre servicii
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre serviciiWADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre servicii
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre servicii
 
CLIW 2017-2018 (11/12) Programare Web. API-uri JavaScript în contextul HTML5 ...
CLIW 2017-2018 (11/12) Programare Web. API-uri JavaScript în contextul HTML5 ...CLIW 2017-2018 (11/12) Programare Web. API-uri JavaScript în contextul HTML5 ...
CLIW 2017-2018 (11/12) Programare Web. API-uri JavaScript în contextul HTML5 ...
 
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului WebCLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
 
WADe 2017-2018 Tutorial (2/3): Data Modeling in HTML: Schema.org HTML5 Microdata
WADe 2017-2018 Tutorial (2/3): Data Modeling in HTML: Schema.org HTML5 MicrodataWADe 2017-2018 Tutorial (2/3): Data Modeling in HTML: Schema.org HTML5 Microdata
WADe 2017-2018 Tutorial (2/3): Data Modeling in HTML: Schema.org HTML5 Microdata
 
CLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului WebCLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului Web
 

Mais de 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 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 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 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
 
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSTAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSabin Buraga
 
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...Sabin Buraga
 
Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)Sabin Buraga
 

Mais de 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 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 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 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)
 
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSTAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
 
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
 
Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)
 

CLIW 2014—2015 (10/12): Programare Web. Suita de tehnologii HTML5