Documente Academic
Documente Profesional
Documente Cultură
Silviu Ojog
Ce vom învăța astăzi?
• Componentele unei Aplicații Web
• Architectura Client-Server
• Ce este JavaScript și la ce folosește
• Cum construim si cum folosim un server
Aplicație web
• Ce este o aplicație web?
• O aplicație web este un program care
foloseste un browser și tehnologii web
pentru a efectua taskuri pe internet.
Tipuri de website-uri
• Aplicații web
• ex: Google Drive, Facebook, email, stiri
• Site-uri de prezentare
• ex: site-uri de companii, prezentare
• Site-uri ecommerce
• ex: emag, Amazon, eBay, FashionDays
Ce este un Browser?
Browser
• Un browser este o aplicație desktop
• Există o diversitate de browsere
• Unele au la bază același engine (program)
• ex: Chrome și Brave folosesc engine-ul V8
• Variază modul în care sunt implementate
standardele HTML5
• Trebuie testat site-ul pe mai multe browsere
Browser
• Sursa: https://gs.statcounter.com/browser-
market-share
Ce este un URL?
• URL înseamnă Uniform Resource Locator și
reprezinta o adresa a unui site
Ce este un URL?
• URL înseamnă Uniform Resource Locator și are 3
părți
• Protocolul prin care ne conectăm
• Domeniul la care ne conectăm
• Documentul care este cerut
• de multe ori este vorba de mai multe
documente
Protocolul
• HTTP - Hyper Text Transfer Protocol
• http://www.link-academy.com/
• HTTPS - Secure Hyper Text Transfer Protocol
• https://www.link-academy.com/
• FTP - File Transfer Protocol
• ftp://link-academy.com/
Documentul
• URL-urile pot specifica documentul:
• https://www.link-academy.com/
contact.html
• În caz că nu este specificat, cel default este
returnat
• Convenția este index.html
Ce este un server?
• Un server este un computer (sau un cluster de
mai multe computere) conectat la internet care
așteaptă cereri de la browsere
• Fiecare server stochează fișiere HTML, imagini,
sunete și alte tipuri de fișiere.
Client - Server
Silviu Ojog
SERVER
CLIENT
(JAVA, PHP,
BROWSER
PYTHON)
HTML, CSS, JS
Silviu Ojog
Client - Server
• Fiecare browser are un engine (ex: V8, WebKit)
Silviu Ojog
CLIENT
BROWSER
SERVER
(JAVA, PHP,
PYTHON)
HTML, CSS, JS
Silviu Ojog
Ce este un client?
• Un client este o “aplicatie” care comunica cu un server
HTTP(S) Request
CLIENT SERVER
HTTP(S) Response
Ce este un client?
• Un client este o “aplicatie” care comunica cu un server
CLIENT CLIENT
SERVER
CLIENT CLIENT
Ce este un client?
• Un client este o “aplicatie” care comunica cu un server
Web Desktop
CLIENT CLIENT
(site) (desktop app)
SERVER
Mobile Server
CLIENT CLIENT
(mobile app) (alt server)
Client - Server
HTTP(S) Request
CLIENT SERVER
HTTP(S) Response
HTTP(S) Request
CLIENT SERVER
(front-end) HTTP(S) Response (back-end)
Web Development
(FRONT-END)
Java
HTML CSS
Script
Web Development
(FRONT-END)
Java
HTML CSS
Script
Content Markup
(continut si structura)
Web Development
(FRONT-END)
Java
HTML CSS
Script
Content Markup
(continut si structura)
- divizarea in pagina
- paragrafe
- ce contine
Web Development
(FRONT-END)
Java
HTML CSS
Script
Silviu Ojog
JavaScript - Istorie
• A fost creat in 1995 (numit original LiveScript)
• A fost numit JavaScript, pt ca Java era popular
Silviu Ojog
Silviu Ojog
JavaScript - Istorie
• A fost creat in 1995 (numit original LiveScript)
• A fost numit JavaScript, pt ca Java era popular
Silviu Ojog
Silviu Ojog
JavaScript - Istorie
• A fost creat in 1995 (numit original LiveScript)
• A fost numit JavaScript, pt ca Java era popular
Silviu Ojog
Silviu Ojog
JavaScript - Frameworkuri
• In prezent, JS are o comunitate extrem de mare
• Exista o multime de frameworkuri de JS
Silviu Ojog
Silviu Ojog
JavaScript - Frameworkuri
• In prezent, JS are o comunitate extrem de mare
• Exista o multime de frameworkuri de JS
Silviu Ojog
REACT
(Facebook)
2013
Silviu Ojog
JavaScript - Frameworkuri
• In prezent, JS are o comunitate extrem de mare
• Exista o multime de frameworkuri de JS
Silviu Ojog
REACT ANGULAR
(Facebook) (Google)
2013 2010
Silviu Ojog
JavaScript - Frameworkuri
• In prezent, JS are o comunitate extrem de mare
• Exista o multime de frameworkuri de JS pe partea
Silviu Ojog
front-end
REACT ANGULAR EXPRESS
(Facebook) (Google) (NodeJS)
2013 2010 2010
Silviu Ojog
JavaScript - Frameworkuri
• In prezent, JS are o comunitate extrem de mare
• Exista o multime de frameworkuri de JS pe partea
Silviu Ojog
front-end
REACT ANGULAR EXPRESS
(Facebook) (Google) (NodeJS)
2013 2010 2010
Silviu Ojog
Silviu Ojog
JavaScript (JS)
• JS a fost creat pentru a manipula pagini web, si o
face foarte bine.
Silviu Ojog
SERVER
CLIENT
(JAVA, PHP,
BROWSER
PYTHON) Silviu Ojog
HTML, CSS, JS
JavaScript (JS)
• Fiecare browser are un engine (ex: V8, WebKit)
Silviu Ojog
CLIENT
BROWSER
SERVER
(JAVA, PHP,
PYTHON)
HTML, CSS, JS
Silviu Ojog
JavaScript in HTML
• Exista doua modalitag de integrare a codului
JavaScript in HTML
JavaScript in HTML
• Exista doua modalitag de integrare a codului
JavaScript in HTML
• Inline coding (integrarea in acelasi fisier HTML)
JavaScript in HTML
• Exista doua modalitag de integrare a codului
JavaScript in HTML
• Inline coding
<script>
console.log ("Hello World!”);
</script>
JavaScript in HTML
• Exista doua modalitag de integrare a codului JavaScript in HTML
• Inline coding
<html>
<head>
<script>
console.log ("Hello World!”)
</script>
</head>
<body>
</body>
</html>
JavaScript in HTML
• Exista doua modalitag de integrare a codului
JavaScript in HTML
• Inline coding (integrarea in acelasi fisier HTML)
• In fisier separat
JavaScript in HTML
• Exista doua modalitag de integrare a codului JavaScript in
HTML
• Inline coding (integrarea in acelasi fisier HTML)
• In fisier separat
<script src=“texoile.js” type=“text/javascript”>
</script>
JavaScript in HTML
• Exista doua modalitag de integrare a codului
JavaScript in HTML
• Inline coding (integrarea in acelasi fisier HTML)
• In fisier separat
<script src=“texoile.js” type=“text/javascript”>
</script>
Nu mai este necesar in ultimele versiuni,
dar este ok pentru compatibilitate
JavaScript in HTML
• Exista doua modalitag de integrare a codului
JavaScript in HTML
• Inline coding (integrarea in acelasi fisier HTML)
• In fisier separat
<script src=“texoile.js”>
</script>
Nu mai este necesar in ultimele versiuni,
dar este ok pentru compatibilitate
JavaScript in HTML
• Exista doua modalitag de integrare a codului JavaScript in HTML
• Inline coding (integrarea in acelasi fisier HTML)
• In fisier separat
<html>
<head>
<script src=“texoile.js” type=“text/javascript”>
</script>
</head>
<body>
</body>
</html>
JavaScript in HTML
• Exista doua modalitag de integrare a codului JavaScript in HTML
• Inline coding (integrarea in acelasi fisier HTML)
• In fisier separat
<html>
Ar trebui sa amanam cat mai mult posibil executia
<head> JS pentru a permite paginii sa se incarce rapid
</head>
<body>
<script src=“texoile.js” type=“text/javascript”>
</script>
</body>
</html>
DOM in JavaScript
• Document Object Model - este o reprezentare a
unei pagini web in bucag mai mici.
• Exemple de folosire a DOM-ului:
• Sa gasesc gtlul unui paragraf
• Sa schimb linkul dintr-o lista
• Sa adaug un element intr-o list
• Schimbarea culorii unui element
DOM in JavaScript
• Document Object Model
• DOCUMENT -> reprezinta pagina web care are
doua reprezentari (souce code si randarea)
• OBJECT -> Componentele individuale (ex:
headline, lista)
• MODEL -> reprezinta pagini intr-un format
simplificat, adica a structura de gp arbore.
DOM in JavaScript
• Codul sursa HTML este transformat in noduri
<html>
<head>
<gtle>Core Javascript</gtle>
</head>
<body>
<h1> Curs 1</h1>
<p> Astazi invatam </p>
<ul id="list">
<li>Istoria limbajuli</li>
<li>Funcgi</li>
<li>DOM</li>
</ul>
</body>
</html>
DOM in JavaScript
• Codul sursa HTML html
<html>
<head>
<gtle>Core Javascript</gtle>
</head>
<body>
<h1> Curs 1</h1>
<p> Astazi invatam </p>
<ul id="list">
<li>Istoria limbajuli</li>
<li>Funcgi</li>
<li>DOM</li>
</ul>
</body>
</html>
DOM in JavaScript
• Codul sursa HTML html
<html>
<head>
<gtle>Core Javascript</gtle> head body
</head>
<body>
<h1> Curs 1</h1>
<p> Astazi invatam </p>
<ul id="list">
<li>Istoria limbajuli</li>
<li>Funcgi</li>
<li>DOM</li>
</ul>
</body>
</html>
DOM in JavaScript
• Codul sursa HTML html
<html>
<head>
<gtle>Core Javascript</gtle> head body
</head>
<body>
<h1> Curs 1</h1>
title
<p> Astazi invatam </p>
<ul id="list">
<li>Istoria limbajuli</li>
<li>Funcgi</li>
<li>DOM</li>
</ul>
</body>
</html>
DOM in JavaScript
• Codul sursa HTML html
<html>
<head>
<gtle>Core Javascript</gtle> head body
</head>
<body>
<h1> Curs 1</h1>
title h1 p ul
<p> Astazi invatam </p>
<ul id="list">
<li>Istoria limbajuli</li>
<li>Funcgi</li>
<li>DOM</li>
</ul>
</body>
</html>
DOM in JavaScript
• Codul sursa HTML html
<html>
<head>
<gtle>Javascript</gtle> head body
</head>
<body>
<h1> Curs 1</h1>
title h1 ul p
<p> Astazi invatam </p>
<ul id="list">
<li>Istoria limbajuli</li>
<li>Funcgi</li> li li li
<li>DOM</li>
</ul>
</body>
</html>
Variabila document
• Variabila document este create de catre Browser si
reprezinta nodul root al documentului html/ o
instanta a DOM-ului
Variabila document
• Variabila document este create de catre Browser si
reprezinta nodul root al documentului html/ o instanta
a DOM-ului
• O folosim pentru a altera structura DOM-ului
• Create
• Read
• Update
• Delete
Variabila document
• Metode de a indengfica elemente/nod-uri in DOM
• document.getElementById()
• Intoarce un element al cărui id îl punem ca
argument.
• Id-ul trebuie sa fie unic
Variabila document
• Metode de a indengfica elemente/nod-uri in DOM
• document.getElementById()
• Intoarce un element al cărui id îl punem ca argument.
• Id-ul trebuie sa fie unic
<p id="unic">Acesta este id-ul</p>
<script>
var unic = document.getElementById("unic");
unic.innerHTML = "I am green!";
</script>
Variabila document
• Metode de a indengfica elemente/nod-uri in DOM
• document.getElementById()
• document.getElementsByClassName()
Variabila document
• Metode de a indengfica elemente/nod-uri in DOM
• document.getElementById()
• document.getElementsByClassName()
• O lista de elemente in fct de numele
unei clase (atributul class)
Variabila document
• Metode de a indengfica elemente/nod-uri in DOM
• document.getElementById()
• document.getElementsByClassName()
<p class="ClassName">Acesta este un p</p>
Variabila document
• Metode de a indengfica elemente/nod-uri in DOM
• document.getElementById()
• document.getElementsByClassName()
<p class="ClassName">Acesta este un p</p>
<p class="ClassName">Acesta este un alt p</p>
Variabila document
• Metode de a indengfica elemente/nod-uri in DOM
• document.getElementById()
• document.getElementsByClassName()
<p class="ClassName">Acesta este un p</p>
<p class="ClassName">Acesta este un alt p</p>
<script>
var list = document.getElementsByClassName(“ClassName");
var i;
for (i = 0; i < x.length; i++) {
x[i].style.backgroundColor = "red";
}
</script>
Variabila document
• Metode de a indengfica elemente/nod-uri in DOM
• document.getElementById()
• document.getElementsByClassName()
• document.getElementsByName()
Variabila document
• Metode de a indengfica elemente/nod-uri in DOM
• document.getElementById()
• document.getElementsByClassName()
• document.getElementsByName()
• document.getElementsByTagName()
• O lista de elemente in fct de numele
tagului
Variabila document
• Metode de a indengfica elemente/nod-uri in DOM
• document.getElementById()
• document.getElementsByClassName()
• document.getElementsByName()
• document.getElementsByTagName()
var divs =
document.getElementsByTagName(“div”);
Variabila document
• Spre deosebire de metoda getElementById,
metodele getElementsBy... se pot executa şi asupra
elementului, nu doar pe document.
Variabila document
• Spre deosebire de metoda getElementById,
metodele getElementsBy... se pot executa şi asupra
elementului, nu doar pe document.
Exercitiul 1
Aveg urmatoarea pagina:
<script>
var language = 'en_us';
var locales = {
'en_us':{
hello:"Hello",
'ro':{
hello:“Bună ziua,
}
</script>
<div style="font-size:2em; font-weight:bold;">hello</div> <
div style="font-size:1.5em; font-weight:bold;">welcome</div>
<div>how_are_you</div>
Exercitiul 1
Creaţi un program JavaScript care sa inlocuiască
conţinutului elementelor div.
În locul acestuia trebuie să introduceți o frază
adecvata, localizată, din lista de fraze reprezentată
cu ajutorul obiectului locales.
Exercitiul 1
<div style="font-size:2em; font-weight:bold;">hello</div>
<div style="font-size:1.5em; font-weight:bold;">welcome</div>